从 Android 5.0(API 级别 21)开始,Android 设备就已能够检测 Captive Portal
/ 强制门户,并通知用户他们需要登录网络才能访问互联网。Android原生系统用于检测的默认服务器是谷歌的,由于众所周知的原因无法访问。
虽然WiFi图标显示叹号和网络受限,但是访问网络问题不大,不过Chrome等应用应用会一直提示:无网络连接。
这会造成软件中需要网络连接的
WorkManager
一直不能执行
解决方法:
使用 ADB 命令解决:
-
删除默认的强制门户设置:
adb shell settings delete global captive_portal_https_url adb shell settings delete global captive_portal_http_url
-
修改新的设置:
adb shell settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204 adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204
-
打开飞行模式,然后关闭飞行模式
这是几个国内可用的服务器地址,也可以使用自己的服务器,返回204即可。
小米:http://connect.rom.miui.com/generate_204
华为:http://connectivitycheck.platform.hicloud.com/generate_204