android wifi网络校验(网络评估机制)失败造成设备重启后无法自动连接wifi

首先了解下这个机制是个什么玩意
安卓设备在连接wifi的时候会向谷歌的服务器发送一个请求,如果谷歌返回的Http响应码是204 not connect,那么安卓系统就认为该wifi可用。如果返回响应码不是204 not connect或者访问谷歌服务器失败了安卓系统就认为该wifi不可用,将AP临时禁用,此时连接的wifi虽然可以访问到互联网但是会发现wifi图标会带个!或者 x

安卓网络校验(也叫网络评估机制或者网络门户检测)为什么返回失败?

  1. 设备在内网环境
  2. 即便是在外网,但是网络环境无法有效访问谷歌的校验网址

想要查看网络校验是否成功,可以参考https://blog.csdn.net/weixin_44008788/article/details/115798135?spm=1001.2014.3001.5506

网络校验失败导致的问题

  1. 设备重启无法自动连接wifi
  2. 连接wifi成功,可以访问网络,但显示无法访问互联网,且状态栏中wifi的图标带x
  3. 连接互联网后无法从浏览器中下载文件

解决方法:

  1. 在内网搭建一个返回Http状态码为204 not connect的web服务,然后将该网址替换系统默认的校验网址
    如下是替换校验网址的文件路径
--- a/packages/modules/NetworkStack/res/values/config.xml
+++ b/packages/modules/NetworkStack/res/values/config.xml
@@ -11,7 +11,7 @@
     <integer name="default_captive_portal_dns_probe_timeout">12500</integer>

     <!-- HTTP URL for network validation, to use for detecting captive portals. -->
-    <string name="default_captive_portal_http_url" translatable="false">http://connectivitycheck.gstatic.com/generate_204</string>
+    <string name="default_captive_portal_http_url" translatable="false">http://xxxxx/generate_204</string>    

     <!-- HTTPS URL for network validation, to use for confirming internet connectivity. -->
     <string name="default_captive_portal_https_url" translatable="false">https://www.google.com/generate_204</string>
  1. 如果是在外网的话,随便找个互联网上可以返回204 not connect的网址,前提是要稳定,客户现场要能访问到。然后使用adb命令将系统已存在的校验网址进行替换, 具体操作可参考https://zhuanlan.zhihu.com/p/107496545

  2. 如果没有特殊要求的话建议将网络评估机制的结果直接手动返回成功
    以平台:mtk6771 android10示例

+++ b/packages/modules/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java
@@ -1468,6 +1468,7 @@ public class NetworkMonitor extends StateMachine {

     @VisibleForTesting
     protected CaptivePortalProbeResult isCaptivePortal() {
+               mIsCaptivePortalCheckEnabled = false;
         if (!mIsCaptivePortalCheckEnabled) {
             validationLog("Validation disabled.");
             return CaptivePortalProbeResult.SUCCESS;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值