原生Android 去除叉号

Android 5.0 引入的一种检测网络是否正常连接的机制,通过 HTTP 返回的状态码是否是 204 来判断是否成功,如果访问得到了 200,那你就可能处在一个需要登录验证才能上网的环境里,比如说校园网,再比如说一些酒店提供的客户才能免费使用的 Wi-Fi(其实是通过 DNS 劫持实现的),如果连接超时(根本就连接不上)就在 Wi-Fi 图标和信号图标上加一个标志,Android 5 和 Android 6 是叹号,Android 7 改成一个叉了。只不过默认访问的是谷歌自家的验证服务器,然而 Google 是被墙掉了,导致 Android 没有办法正确评估网络。所以,系统每隔一定时间都会重新尝试连接,就在不知不觉中消耗了数据流量。更恐怖的就是 Android 认为在 Wi-Fi 下无法连接互联网,就让联网的程序通通走流量…

解决办法

利用ADB直接修改命令,前提是手机开启开发者选项

Android 5.0 - 6.0

1
2
3
4
5
6
# 删除地址就可以恢复默认的谷歌服务器
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 10.0

1
2
3
4
5
6
# 删除(删除默认用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

以上执行完成之后,都需要开启一下飞机模式

Comments

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×