由于 Pixel 手机在连接热点的时候,要检测一下这个热点是否能联网,由于检测的地址被屏蔽了,无法返回 HTTP 状态 204,所以我们在连接到 Wi-Fi 的时候,都会出现“网络连接受限”都提示。如果是仅仅提示,那也不影响,但是有些时候,直接无法连接 Wi-Fi,对使用有一定的影响,下面是 macOS 下的解决办法,Windows 和 Linux 类似。
1、安装 adb。
使用 homebrew 安装,命令:
brew install --cask android-platform-tools
如果没有安装 homebrew,先安装 homebrew。
2、打开“开发者选项”,开启“USB 调试”选项。
3、终端配置 captive portal mode。
手机连上电脑的时候,会提示“允许 USB 调试吗?”,选择“允许”,如果使用的是自己的电脑,前面的“一律允许使用这台计算机进行调试”。
打开终端,输入 adb devices
就可以看到已经连接的设备。
adb shell settings put global captive_portal_mode 0
开启、关闭一下飞行模式,即可解决“网络连接受限”的问题,重新连上 Wi-Fi 就不会出现“网络连接受限”的提示。
查看 captive_portal_mode,如果没有设置过,会返回 null:
settings get global captive_portal_mode
删除 captive_portal_mode,删除成功,会返回“Deleted 1 rows”:
settings delete global captive_portal_mode
还有一种方法也可以解决“网络连接受限”的问题,就是设置 captive_portal_http_url
和 captive_portal_https_url
,查看 captive_portal_http_url
和captive_portal_https_url
的设置,如果没有,会返回 null:
settings get global captive_portal_http_url settings get global captive_portal_https_url
设置 captive_portal_http_url
和 captive_portal_https_url
,这个 url 是小米的:
settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204 settings put global captive_portal_https_url http://connect.rom.miui.com/generate_204
也有其他的 url 可选择,根据我的理解,如果你有自己的网站,可以搞一个地址,只有 HTTP 状态返回值是 204 即可,可以用 htaccess 即可完成。玩客也设置了一个 url,https://wker.com/generate_204
,有需要的可以使用我的,经测试可行。
扩展阅读:
网上搜索了一下,Google Pixel 官方的地址应该是 https://connectivitycheck.gstatic.com/generate_204。