喜欢使用原生Android系统的朋友可能会发现自己的状态栏信号图标上经常有一个惊叹号标志。
这是怎么回事呢?原因是Android为了对网络状态进行检测,采用了一种叫做captive detection的方式进行网络状态检测。
其实说起来很简单,每当连接到一个网络,比如移动数据网络或者WIFI的时候,Android的NetworkMonitor模块会构造一个http的请求,发送到指定的服务器,然后利用收到的响应进行网络状态判断。
2) 返回状态码204,这种情况代表具备完整的Internet访问(特定的服务器专门返回204的状态码);参见图1右图。
默认的Android系统访问的特定服务器地址是:
http://clients3.google.com/generate_204$ adb shell settings put global captive_portal_detection_enabled 0
$ adb shell settings put global captive_portal_server www.androidbak.net
如果大家使用过后觉得不想用了,可以使用如下的命令恢复初始状态:
$ adb shell settings delete global captive_portal_server $ adb shell settings put global captive_portal_detection_enabled 1
原文地址:http://blog.csdn.net/howellzhu/article/details/43913309