国产 ROM 为什么几乎不会出现感叹号问题
出厂就改好了
国产手机厂商在系统定制阶段就把 Captive Portal 的探测 URL 从 Google 默认值替换成了自己的服务器。所以:
- 小米用户出厂就用
connect.rom.miui.com/generate_204 - 华为用户出厂就用
connectivitycheck.platform.hicloud.com/generate_204 - Vivo 用户出厂就用
wifi.vivo.com.cn/generate_204
这些服务器都在国内,大陆网络直连顺畅,探测天然能返回 204,图标就不会挂感叹号。
CaptiveMgr 的真正受众
CaptiveMgr 的主场是刷了原生或类原生 ROM 的设备:
- Google Pixel 系列(原生系统,默认探测 Google 服务器)
- Nexus 系列(同上)
- 刷了 LineageOS、Pixel Experience、Evolution X 等 AOSP 类系统的国产手机
刷了这些系统之后,厂商的定制层被移除,探测地址就变回了 Google 默认值,感叹号问题也就跟着来了。这时候才轮到 CaptiveMgr 出场。
怎么检查自己的设备是不是受影响
最简单的办法:
- 手机连上网
- 看信号图标下方有没有 × 或 !
- 如果有,大概率是探测地址问题,可以用 CaptiveMgr 解决
也可以用 ADB 查当前参数值:
adb shell settings get global captive_portal_http_url
adb shell settings get global captive_portal_https_url
返回 Google 域名的就是默认值,需要换。
特殊情况:刷了原生但图标也干净
个别场景下国产手机刷了类原生 ROM 之后图标依旧干净,可能的原因:
- 刷机包维护者已经把探测地址改成了国内服务器
- 设备走的是代理/加速器,Google 探测地址刚好能通
- 系统版本较老,检测机制本身不太积极
这些情况自然不需要 CaptiveMgr。