讨厌采用原生植物Android控制系统的好友可能将会发觉的状况栏讯号工具栏上时常有两个Perhaps象征。
这是咋呢?其原因是Android为的是对互联网状况展开检验,选用了一类叫作captive detection的形式展开互联网状况检验。
只不过说起来很单纯,每每相连到两个互联网,比如说终端数据互联网或是WIFI的这时候,Android的NetworkMonitor组件会内部结构两个http的允诺,发送至选定的伺服器,接着借助接到的积极响应展开互联网状况推论。
?
互联网状况有如下表所示三种状况:
1) 显然就没回到,此种情形代表者现阶段没Internet出访;参看图1下图。
2) 回到状况码204,此种情形代表者具有完备的Internet出访(某一的伺服器专门针对回到204的状况码);参看图1下图。
3) 除204之外的其它小于200而小于400的状况码,此种状况码通常代表者须要展开Web登入的互联网相连,比如说国际机场、大型商场提供更多的须要手机短信进占的互联网。此种情形下Android会内部结构两个可能将须要登入的状况栏通告以通告采用者可能将须要展开进占。参看图2。
?
?
预设的Android控制系统出访的某一伺服器门牌号是:
http://clients3.google.com/generate_204
十分幸运地,十分感谢了不起的墙,该门牌号我们在亚洲地区难于出访,因而常常没回到值。此种情形下,Android常常认为现阶段没Internet出访潜能,因而会在讯号工具栏上表明短句。
而只不过这这时候我们是可以出访互联网的。为的是消解此种误判,我们可以粗暴的将该功能关闭,通过如下表所示的adb命令就可以做到:
[注意:此种方法不推荐,不建议执行这个命令]
$ adb shell settings put global captive_portal_detection_eanbled 0
但是,这样的做法明显有问题:当碰到须要登入的互联网也无法推论出来,从而无法提示采用者展开web登入了。
因而,最好的做法是提供更多两个可以出访的网站来专门针对回到204状况码,接着将检验伺服器定向到该门牌号。
这里,我为大家提供更多两个我知道的互联网检验伺服器门牌号:http://204.gentool.top
借助如下表所示的adb命令就可以修改该伺服器门牌号了:
$ adb shell settings put global captive_portal_server 204.gentool.top
如果大家采用过后觉得不想用了,可以采用如下表所示的命令恢复初始状况:
?
$ adb shell settings delete global captive_portal_server
?
更新补充一点:
注意:从Android N(7.0)开始,预设采用http,并且设置项发生改变(从CAPTIVE_PORTAL_SERVER = "captive_portal_server"=>CAPTIVE_PORTAL_HTTP_URL = "captive_portal_http_url")。
$ adb shell settings put global captive_portal_detection_enabled 1
$ adb shell settings put global captive_portal_use_http 1
$ adb shell settings put global captive_portal_http_url ?http://204.gentool.top
?
如果觉得麻烦,可以单条命令:
$ adb shell settings put global captive_portal_detection_enabled 1 && adb shell settings put global captive_portal_use_http 1 && adb shell settings put global captive_portal_http_url ?http://204.gentool.top
?
?
?
?
发表评论