原生系统在中国大陆使用的时候连接 Wi-Fi 后会弹出提示,该热点无网络连接,且在 WiFi 信号图标上显示叉号,但是实际上此网络是可使用的。
(家里在用的英伟达shield tv盒子,wifi显示已连接,无法访问互联网)
说明
CaptivePortal 是 Android 5.0 引入的一种检测网络是否正常连接的机制,通过 HTTP 返回的状态码是否是 204 来判断是否成功,如果访问得到了 200,那你就可能处在一个需要登录验证才能上网的环境里,比如说校园网,再比如说一些酒店提供的客户才能免费使用的 Wi-Fi(其实是通过 DNS 劫持实现的),如果连接超时(根本就连接不上)就在 Wi-Fi 图标和信号图标上加一个标志,Android 5 和 Android 6 是叹号,Android 7 改成一个叉了。只不过默认访问的是谷歌自家的验证服务器,然而 Google 是被墙掉了,导致 Android 没有办法正确评估网络。所以,系统每隔一定时间都会重新尝试连接,就在不知不觉中消耗了数据流量。更恐怖的就是 Android 认为在 Wi-Fi 下无法连接互联网,就让联网的程序通通走流量…
ADB 工具
https://pan.baidu.com/s/1qaSO0xEEIMTXH5OFJOfN6Q
提取码:4d2x
要想去除,需要用到一个工具,那就是 ADB。然后请自行搞定 ADB 的环境变量配置,请在手机设置里开启开发者选项,然后再打开USB 调试。最后通过数据线连接电脑,就可以开搞了。
解决方法
Android 5.0 – 6.0
# 删除地址就可以恢复默认的谷歌服务器 adb shell settings delete global captive_portal_server # 设置一个可用地址 adb shell settings put global captive_portal_server http://developers.google.cn/generate_204 # 查询当前地址 adb shell settings get global captive_portal_server
注意:执行完后请打开飞行模式后再关闭
Android 7.0 – Android 9.0
# 删除(删除默认用HTTPS) adb shell settings delete global captive_portal_https_url adb shell settings delete global captive_portal_http_url # 设置一个可用地址 adb shell settings put global captive_portal_http_url http://developers.google.cn/generate_204 adb shell settings put global captive_portal_https_url https://developers.google.cn/generate_204
注意:执行完后请打开飞行模式后再关闭
还有一种方法:(实测可用)
就是先打开shield tv盒子的开发者模式,网络调试打勾,然后查看无线网络ip,打开电脑cmd
输入:adb connect 192.168.2.2 (输入自己电视盒子ip)
写入新的ntp服务器地址 :adb shell settings put global ntp_server ntp1.aliyun.com。
原创文章,作者:admin,如若转载,请注明出处:https://www.xhling.com/post-374.html