Android 11.0 NetworkMonitor导致的wifi连接后显示x问题解决方法

Android为了对网络状态进行检测,采用了一种叫做captive detection的方式进行网络状态检测。其实说起来很简单,每当连接到一个网络,比如移动数据网络或者WIFI的时候,Android的NetworkMonitor模块会构造一个http/https的请求,发送到指定的服务器,然后利用收到的响应进行网络状态判断。

安卓手机网络状态有如下几种状态:

  1. 根本就没有返回,这种情况代表当前没有Internet访问;
  2. 返回状态码204,这种情况代表具备完整的Internet访问(特定的服务器专门返回204的状态码);
  3. 除204以外的其他大于200而小于400的状态码,这种状态码一般代表需要进行Web登录的网络连接,比如机场、商场提供的需要短信登录的网络。这种情况下Android会构造一个可能需要登录的状态栏通知以通知用户可能需要进行登录。

安卓类原生ROM刷机包默认的204服务器是由谷歌提供,由于谷歌在我国大陆区不可访问。wifi有叹号或打叉这都是正常的,因此,不要再见到WiFi的叹号就向ROM作者反馈bug啦,那根本就不是bug!

安卓9以下版本ROM修改204服务器教程:
源码位置:frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java

原代码:

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";

修改为:

private static final String DEFAULT_HTTPS_URL="https://connect.rom.miui.com/generate_204";

private static final String DEFAULT_HTTP_URL="http://connect.rom.miui.com/generate_204";

private static final String DEFAULT_FALLBACK_URL="http://connect.rom.miui.com/generate_204";

private static final String DEFAULT_OTHER_FALLBACK_URLS="http://connect.rom.miui.com/generate_204";

重新编译,解决。

安卓10以上版本ROM修改204服务器教程:
Android 10,我们发现frameworks/base/services/core/java/com/android/server/connectivity/下已经没有了NetworkMonitor。原来,自Android Q开始,网络状态由networkstack判断,相应的,我们依然通过修改204服务器来解决这个问题。
源码位置:packages/modules/NetworkStack/res/config.xml
原代码:

<!-- 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>

<!-- 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>

<!-- List of fallback URLs to use for detecting captive portals. -->

<string-array name="default_captive_portal_fallback_urls" translatable="false">

<item>http://www.google.com/gen_204</item>

<item>http://play.googleapis.com/generate_204</item>

</string-array>

修改为:

<!-- HTTP URL for network validation, to use for detecting captive portals. -->

<string name="default_captive_portal_http_url" translatable="false">http://connect.rom.miui.com/generate_204</string>

<!-- HTTPS URL for network validation, to use for confirming internet connectivity. -->

<string name="default_captive_portal_https_url" translatable="false">https://connect.rom.miui.com/generate_204</string>

<!-- List of fallback URLs to use for detecting captive portals. -->

<string-array name="default_captive_portal_fallback_urls" translatable="false">

<item>http://connect.rom.miui.com/generate_204</item>

<item>http://connect.rom.miui.com/generate_204</item>

</string-array>
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrsongs的心情杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值