Frencis 发表于 2016-8-20 22:20:36

Android6.0原生系统出现Wifi信号感叹号的解决方法

本帖最后由 fjy 于 2016-8-21 13:19 编辑

      上周给手机刷了6.0原生系统,相比原来的MIUI,没有广告速度感觉更快了,结果发现手机连接WLAN且在网络正常的情况下会出现“已连接,但无法访问互联网”,我找了一些资料,发现了原因      安卓5.0引入了一种新的网络评估机制来评估网络状况,当你有网络请求时会自动选择网络连接条件最好的一个网络进行连接。      如果该网络是虚拟专用网络,那么直接使用这个网络进行连接,否则调用isCaptivePortal() 函数进行网络状况的判定,再根据判定结果决定是否选用此网络。
      而这个 isCaptivePortal() 函数,它会访问clients3.google.com/generate_204 并根据返回结果来判断网络联通状况。因为这个Google的网址被和谐导致安卓没有办法评估网络,这样就导致了那个感叹号一直存在,以及导致wifi用着用着突然自动连回数据连接。这个函数也有个非常重要的作用,那就是判断当前网络是否需要登录,当我们连接到类似CMCC、Chinanet等网络时会提示无名进行登陆:系统连接到那个网址会产生一个 http 204 返回值。204返回值的意思就是空内容。如果当前wifi是需要登录才可以连接,那么当试图访问google的服务器的时候,wifi的验证机制一定会自动跳转到一个登录页面,这个时候http请求的返回值就必然不是204了。就是通过这一机制,便可以区分当前wifi是否需要验证。
      那么有什么解决方法呢?
      方法一:屏蔽网络检查功能,最简单快速,但是就没有办法提示wifi登录
                手机终端中或者ADB远程输入以下指令
settings put global captive_portal_detection_enabled 0      方法二:用国内的服务器替换掉google的服务器
                手机终端或者ADB远程输入【请将服务器地址替换成你想进行跳转的地址(不加“http://”和“/generate_204”)】:
settings put global captive_portal_server 服务器地址                   这是个栗子:settings put global captive_portal_server connect.rom.miui.com
我在这里推荐两个204跳转地址
小米:http://connect.rom.miui.com/generate_204
V2ex:http://www.v2ex.com/generate_204



如果你想自己建204跳转,请看下面
对于apache服务器,如果你的服务器安装了rewrite模块,那么只需要在网站的.htaccess中加入以下代码:
<blockquote><IfModule mod_rewrite.c>
对于nginx,直接加入以下设置即可:
location /generate_204 { return 204; }





      


Hashimoto 发表于 2016-8-20 23:05:23

{:05:}

8680765 发表于 2016-8-21 13:09:59

之前试过替换网址,无效,最后是关闭了网络检查才可以。

Frencis 发表于 2016-8-21 13:15:05

8680765 发表于 2016-8-21 13:09 static/image/common/back.gif
之前试过替换网址,无效,最后是关闭了网络检查才可以。

你是怎么替换的呢

8680765 发表于 2016-8-21 13:59:26

fjy 发表于 2016-8-21 13:15 static/image/common/back.gif
你是怎么替换的呢

http://sspai.com/27827   里面的这个软件。有可能是那个服务器的网址不能用。

Frencis 发表于 2016-8-21 14:06:31

8680765 发表于 2016-8-21 13:59 static/image/common/back.gif
http://sspai.com/27827   里面的这个软件。有可能是那个服务器的网址不能用。
...

是那个网址不能用了,可以用miui rom的地址

sfd255 发表于 2016-12-25 08:37:52

安卓7.1也是,连数据连接都显示无法使用,然后一连wifi叫一声,弹个框,相当烦人

sfd255 发表于 2017-1-1 08:34:16

miui rom的也不好使了
页: [1] 2
查看完整版本: Android6.0原生系统出现Wifi信号感叹号的解决方法