Android wifi captive portal 验证

本文介绍了解决Android 5.0版本中由于无法连接至Google服务器导致WiFi图标出现感叹号的问题。通过将验证网址指向国内快速稳定的服务器,如新浪AppEngine,可以消除WiFi连接状态的错误提示。
部署运行你感兴趣的模型镜像
只要是国内的用户,基本上刷完5.0版本后如果没挂上V P N,信号及WIFI图标上都会显示有一个感叹号,是因为Google在5.0上加入了一个验证机制,移动网络与WIFI都会连接到google的服务器上,连接到google服务器上就为了去验证这个网络是否需要登录才能使用,如果所连接的WIFI是需要登录的,那么WIFI的图标便会显示感叹号了,但国内会显示却是因为连不上google。

首先,要知道的就是这个功能的原理就是通过你所连接的WIFI去访问google的指定的网址,然后如果访问的网站返回一个204代码(204代码就意味着是一个空白的,无内容的网页),那就表明该网站是无需登录的,如果返回的是某某商家的网址那么这个网页就不是空白的,就没有204的代码返回,那么就通过这个机制,就可以判断这个WIFI能否直接用了,机智的程序猿呀.....
所以如果要解决这个问题,只需要把这个指定的网址改成我们国内的网址,或者一个我们可以访问的,速度快的网址那就可以了。
网上呢,也有一些大神贡献出了自己架设的网站,且承诺是永久提供服务的,首先也得感谢那些无私奉献的大大们,但我个人觉得,自己的才是最好的,毕竟很难保证别人不会因为些什么原因停止提供服务,或者人家提供的网址速度不够快对吧,所以自己动手丰衣足食。

国内什么网站快且稳定?百度呀,新浪呀等等等等,然后百度要钱,不多说了,所以选个新浪的App Engine架设自己的网站。
1.登录SEA网站,用你的微博账号登录就好了 http://sae.sina.com.cn/
2.在“我的首页”的“控制台”点击“创建新应用”
3.域名跟应用名随你喜欢了,开发语言用php下的“空应用”。
4.创建成功后,在“我的首页”就能看到了,然后点击你刚刚创建的应用。
5.点击左侧的“代码管理”,在“代码管理”里点击“创建一个版本”,随便你输入一个数字。
6.创建一个版本后,点击编辑代码。
7.然后在路径旁边有个新建文件,创建一个叫“generate_204”的文件,不用带任何拓展名,文件里面也不需要输入任何内容。
8.使用ADB命令:adb shell su -c "settings put global captive_portal_server 你的应用名.sinaapp.com"

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

安卓设备接入Wi-Fi时,Captive Portal通常用于验证用户身份并提供初始网络服务。这里是一个简化的Captive Portal实现逻辑: 1. **检测连接**: 当设备连接到新的WiFi网络时,Android系统会自动尝试Captive Portal认证。 2. **打开网页**: 设备会打开预设的Web页面(通常是设置了一个特定URL的HTML),提示用户登录或获取初始引导信息。 3. **用户交互**: 用户输入用户名和密码,或者点击链接开始认证流程。 4. **POST数据**: 用户提交的表单数据通过HTTP POST发送到服务器端。 5. **服务器响应**: 如果用户名和密码正确,服务器返回一个包含"Success"或其他表明认证成功的消息。 6. **更新认证状态**: 客户端收到成功消息后,保存凭证并关闭Captive Portal页面,允许访问互联网资源。 以下是简化版的伪代码示例: ```java // 获取网络连接 ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connManager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { // 打开Captive Portal页面 WebView webView = new WebView(this); webView.loadUrl(CAPTIVE_PORTAL_URL); // 监听WebView的 onPageFinished 事件 webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { if (url.equals(SUCCESSFUL_AUTH_URL)) { // 说明认证成功,关闭页面 webView.stopLoading(); handleSuccessfulAuthentication(); } } }); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值