gojira.net
今天手机刷了最新的cm12系统,也就是Android5.1.1的系统,各方面都还不错,也挺流畅的。
用了半天,就是发现顶部右上角的wifi和移动信号那里总是显示感叹号(如下图),有强迫症的我怎能放过它?
去网上找了下资料,知道了这是google的一个检测网络的措施:
谷歌原生安卓系统当连接到移动数据网络或者WIFI网络的时候,其NetworkMonitor模块会向 clients3.google.com/generate_204 这个网址发起一个http的请求并利用收到的响应进行网络状态判断。而这个网址如字面所说,会产生一个 http 204 返回值。如果当前wifi是需要登录才可以连接,那么当试图访问google的服务器的时候,wifi的验证机制一定会自动跳转到一个登录页面,这个时候http请求的返回值就必然不是204了。就是通过这一机制,便可以区分当前wifi是否需要验证。
然而由于google的服务器被兲朝屏蔽,所以导致没有任何返回值,这个时候谷歌安卓系统就会在移动信号或者wifi图标上打一个刺眼的感叹号。
那么为我们要做的就是将原来访问的 clients3.google.com/generate_204
替换为中国大陆可正常访问的 www.dngz.net/generate_204
解决办法:打开USB调试模式,连接USB,打开ADB命令行 :首先输入
列出adb设备,看看设备是不是连上了。(如果显示unauthorized,则要在手机端授权,如果显示offline则说明没连上,需要检查连接,或者adb的版本太低了,我就是因为adb版本低,折腾了很多时间,后来换为adb1.0.32版本,几秒钟就搞定了。)
然后输入
[php]
adb shell settings delete global captive_portal_server
adb shell settings put global captive_portal_server www.dngz.net
[/php]
如果返回类似如下图信息,则说明成功了,
重启手机,连上wifi或移动网络看看,怎么样?感叹号消失了。
这种改修改方式具有持久性,重启手机依旧有效,除非刷机或者双清。
-------------------------------
如果您想恢复为原先的状态的话,使用下面的命令:
[php]
adb shell settings delete global captive_portal_server
adb shell settings put global captive_portal_detection_enabled 1[/php]
网上也有其它解决方法,但是要root权限,要另外安装未经检测的app,安全起见,这样的方法我是不会用的,还是自己复制粘贴两个命令靠谱。
必须得顶呀!