Android(安卓)wifi提示已连接但是无法访问网络
Android6.0之后新增加了网络能力的标识类:NetworkCapabilities.java
路径:frameworks/base/core/java/android/net/NetworkCapabilities.java
public boolean hasCapability(int capability) {
if (capability < MIN_NET_CAPABILITY || capability > MAX_NET_CAPABILITY) {
return false;
}
return ((mNetworkCapabilities & (1 << capability)) != 0);
}
public NetworkCapabilities addCapability(int capability) {
if (capability < MIN_NET_CAPABILITY || capability > MAX_NET_CAPABILITY) {
throw new IllegalArgumentException("NetworkCapability out of range");
}
mNetworkCapabilities |= 1 << capability;
return this;
}
因此可以通过判断这个标记,来判断网络的连通性。
注:目前看来这只是一个用于判断的标识!!!
但是为什么会出现标题的问题呢?
原因是测试网络链接性的时候Android原生访问的是国外谷歌的网址,在国内是无法链通的,所以你懂得???
代码逻辑如下:
frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
所以从代码逻辑看,要想去掉此显示,只要把如下初始值改为0即可:
frameworks/base/packages/SetttinsProvider/res/values/defaults.xml路径下的
def_captive_portal_detection_enabled属性初始值改为0
更多相关文章
- Android之获取手机信息
- Android获取程序路径 (/data/data/appname)
- Android(安卓)判断是否能真正上网
- Android——文件操作
- Android(安卓)检测网络是否打开
- android 获取 imei号码
- android判断APP是否已经安装
- android 判断手机是否插入SIM卡
- Android下为自己定义WifiManager类wifi模块代码