Android6.0之后新增加了网络能力的标识类:
路径:frameworks/base/core/java/android/net/
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/
所以从代码逻辑看,要想去掉此显示,只要把如下初始值改为0即可:
frameworks/base/packages/SetttinsProvider/res/values/路径下的
def_captive_portal_detection_enabled属性初始值改为0