您所在的位置: > 主页 > 秀尚街 > 资讯 > 正文
无需 Root 消除 Wi-Fi 和移动网络上出现的感叹号丨一日一技 · Android!来源: 日期:2021-02-22 07:30:32  阅读:-

    如果你使用的是 Android 5.0 以上的原生系统,那你很有可能遇到过这样一个现象:状态栏右上方的移动信号或者 Wi-Fi 指示图标旁莫名出现一个奇怪的感叹号。进入 WLAN 设置后还会发现,已经连接的无线网络下方出现「已连接,但不能连接到互联网」这样的提示。

    无需 Root 消除 Wi-Fi 和移动网络上出现的感叹号丨一日一技 · Android

    为什么会有这种情况?我可以忽略它吗?

    从 Android 5.0 开始,当系统连接网络时,系统模块 NetworkMonitor 就会向 Google 的一个特定网址(http://www.google.com/generate_204) 发送数据请求来判断网络状态,如果成功就会返回一个特定的值表示设备可以连接到互联网。这个「特定的网址」在国内是无法正常访问的,感叹号因而也就出现了。

    在感叹号存在的状态下,即便是我们连接了某个 Wi-Fi ,手机仍然可能使用移动数据进行网络传输,这会导致在不知不觉间产生超额的流量费。同时,由于系统会不断的尝试联网,手机待机时间也会受到不小的影响。

    换言之,我们一定不能对此置之不理

    有哪些解决方法?

    遇到「感叹号」问题目前有三种解决方法。

    1. 通过应用解决

    • 方法:我们曾为大家介绍了一款名为Portal Server的 App 来解决这个烦恼,采用完全图形化界面,通过输入可以使用的「generate_204」网址就行。
    • 缺点:设备需要 Root,且应用作者提供的地址并不稳定。

    2. 完全关闭网络检查服务

    • 方法:无需 Root,使用 ADB 命令关闭系统网络检查服务:adb shell settings put global captive_portal_detection_enabled 0
    • 缺点:当你使用公共 Wi-Fi 这种需要使用 portal 验证的网络时,因为网络检查被关闭,系统在访问 portal 验证页面时无法返回正确的值,最终导致无法完成验证和上网

    3. 替换网络检查服务的网址

    最好的办法还是使用 ADB 命令的形式,将验证服务的网址(http://www.google.com/generate_204)替换成一个可以正常访问的 「generate_204」网址,这种方法无需 Root,而且不影响 WiFi 连接问题,下面是具体的操作方法。

    操作步骤

    1. 首先,需要下载 ADB 工具包到电脑系统的根目录。

    2. 进入工具包目录,按住 Shift 键,同时在文件夹空白处点击鼠标右键,选择「在此处打开命令窗口」,打开命令控制程序。

    无需 Root 消除 Wi-Fi 和移动网络上出现的感叹号丨一日一技 · Android

    3. 将手机通过 USB 连接至电脑,打开手机的 USB 调试选项,并选择在「允许使用此台电脑进行调试」中选择确定。

    4. 经过测试,目前国内满足要求的可访问网址有不少(动手能力强的也可以自己建立,但不再本次的讨论范围之内),下面提供两个访问较为稳定的,选择任何一个网址均可:

    • connect.rom.miui.com/generate_204
    • www.v2ex.com/generate_204

    5. 回到电脑桌面,在命令控制程序中,输入 adb shell。如果出现$标志说明 adb 服务已经开启,输入 exit 退出命令。

    无需 Root 消除 Wi-Fi 和移动网络上出现的感叹号丨一日一技 · Android

    6. 直接输入以下命令并回车(任选其一):

    • adb shell settings put global captive_portal_server connect.rom.miui.com
    • adb shell settings put global captive_portal_server www.v2ex.com
    无需 Root 消除 Wi-Fi 和移动网络上出现的感叹号丨一日一技 · Android

    7. 完成修改后可选择手动重启手机,或在当前命令控制程序窗口下,输入 adb shell reboot进行重启,重启完毕之后你会发现恼人的感叹号已经没有了!

    注:以上修改方法重启不会失效,但如果刷机或者系统重置后,则需要重新操作一遍。

    如何还原

    虽然这个情况很少发生,不过如果希望还原回去,也可以通过 adb 命令的形式,连接手机后在命令控制程序中输入以下两段命令:

    • adb shell settings delete global captive_portal_server
    • adb shell settings put global captive_portal_detection_enabled 1

    之后手动重启手机或者输入 adb shell reboot命令重启后即可还原。

    (正文已结束)

    免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎!