CaptiveMgr 中文文档 下载 App

图标下面的感叹号和叉到底是什么意思

先分清两个容易混淆的标记

安卓系统里跟网络状态有关的图标标记,其实不止一个:

搞清楚是哪一个再动手——上方的叉你找 CaptiveMgr 没用。

感叹号的来源:系统后台悄悄跑的一次探测

安卓从 5.0(Lollipop)起引入了 Captive Portal 检测机制。它的工作方式很简单:

  1. 系统在后台悄悄地发一个 HTTP 请求到某个固定地址
  2. 期望服务器返回 HTTP 204(无内容)
  3. 收到 204 → 判定「有网」,图标干净
  4. 收到 302 重定向或任何非 204 → 判定「可能被强制门户拦截了」,先挂个标记

这套机制的初衷是帮助用户在校园网、酒店 WiFi 这类强制门户网络里快速发现「需要先网页登录」。但副作用是:默认探测地址指向谷歌自己的服务器,在大陆直连不上,探测一直失败,哪怕你正在刷视频,系统也认定「没有网络」。

为什么叫 Captive Portal

这个词直译是「强制门户」——指的是公共场所 WiFi 那种一连上就自动弹网页要求登录的网络(校园网、酒店、公共 WiFi)。安卓在 5.0 之前对这种网络没什么处理能力,用户只能自己手动打开一个网页去触发登录页。Captive Portal 检测就是为此设计的一套自动机制。

CaptiveMgr 的处理思路

CaptiveMgr 不碰 DNS、不写 hosts、不装自定义证书。它的做法是:

三条路对应三种需求:大多数人选第一种,嫌麻烦的选第二种,都满足不了就去看「进阶对比」。

相关页面

这套机制在不同安卓版本里参数名不完全一样,参见「安卓版本参数变化」。国产 ROM 为什么几乎不会出现这个问题,参见「国产ROM为什么不需要」。