Android 5.0 网络信号图标上的感叹号的解决办法

升级Android5.0以后,WIFI信号和电话信号上就一直有一个叹号,当时忍了,今天更新了Android5.1 ,突然想反正刷机一起解决掉这个叹号。度娘好多废话,才找了比较满意的解决方法,现在把它记录下来,怕下次伤脑筋又忘记了。

手机联上网络后它会向clients3.google.com/generate_204 发送HTTP请求来判断当前网络状况,如果这个地址返回一个204(无内容),服务器成功处理了请求,他就认为网络正常了,在高墙后肯定是无法访问这个到这个地址的,系统会因为无法连接而判定网络不正常,所以我们会得到一个感叹号。用狐狸的话说“那个蛋碎的感叹号一直存在”,其实是那个蛋碎的高墙一直都在,这还会导致一个严重的后果,如果开着手机数据,会因为对当前网络判断不准确而跑数据流量了。

有两个解决方法(无需root):


1.完全屏蔽网络检查功能,最简单快速,但是就没有办法提示wifi登录:

adb shell "settings put global captive_portal_detection_enabled 0"

2.用国内的服务器替换掉google的服务器:

adb shell "settings put global captive_portal_server www.piaoxiao.net"

www.piaoxiao.net 是我自己架设的服务器,因为原作者的地址太难记了。

经过靠谱的确认,改修改方式具有持久性,重启依旧有效,除非刷机或者清除数据,烦人的感叹号没有了~

如何建立自己的服务器

1. 对于apache服务器,如果你的服务器安装了rewrite模块,那么只需要在网站的.htaccess中加入以下代码:

RewriteEngine On
RewriteCond %{REQUEST_URI} /generate_204$
RewriteRule $ / [R=204]

2. 对于nginx,直接加入以下设置即可:

location /generate_204 { return 204; }

3. 如果以上方法都无效,那么就要利用代码中的一个小trick来完成,直接在网站的根目录下建立一个叫做“generate_204”的空文件即可,因为安卓的源码中写了如果返回的内容为空那么也会当成204(毕竟一个空的页面怎么想都不可能是登录页面嘛!)。

大概就这么多了,其他的懒得抄了。当然还有更多细节,作者还开发了更改地址的APP,好方便的,大家可以去狐狸的网站查看吧
地址:https://小狐狸.中国/45.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据