这个问题相信大家都遇到过,明明网络连接正常,也可以正常上网,但是系统还是会弹出提示,并且wifi和数据的图标下面还会有一个叉号,如下图:
其实不光在AOSP上面,在google自己的原生系统上面,也会遇到,其本质原因是:
系统在连接到网络后,会尝试验证网络的连通性,而默认的验证地址是www.google.com/generate_20…
因为不可抗拒的原因,这个地址在国内是无法访问的,所以就会出现上诉的情况。
解决办法就是修改为我们国内的地址:
修改源码
1.打开frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
2.找到下面代码
private static final String DEFAULT_HTTPS_URL = "https://www.google.com/generate_204";
private static final String DEFAULT_HTTP_URL =
"http://connectivitycheck.gstatic.com/generate_204";
private static final String DEFAULT_FALLBACK_URL = "http://www.google.com/gen_204";
private static final String DEFAULT_OTHER_FALLBACK_URLS =
"http://play.googleapis.com/generate_204";
3.将DEFAULT_HTTPS_URL的值改为
3.将DEFAULT_HTTP_URL和DEFAULT_FALLBACK_URL的值改为
刷入设备
1.cd 到 frameworks/base/services/java/ 目录下,执行mm命令编译
2.编译完成后,会在 out/target/product/xxx/system/framework/ 目录下生成一个services.jar文件
3.连接手机,将生成的services.jar文件刷入到设备
具体刷入步骤如下:
adb remount
adb push services.jar /system/framework/