受限门户 API 支持

从 Android 11 Beta 2 开始,系统支持 RFC7710bis 和关联的 受限门户 API 中描述的功能子集。

该 API 为接入点提供了一种可靠的方法来识别自身为受限门户。它还为接入点发布信息(例如会话和场所信息)给用户提供了新的用例。

改进的受限门户检测

从 Android 5.0(API 级别 21)开始,Android 设备检测受限门户并通知用户需要登录网络才能访问互联网。受限门户是使用明文 HTTP 探测到已知目标(例如 connectivitycheck.gstatic.com),如果探测收到 HTTP 重定向,则设备会假定网络是受限门户。此技术可能不可靠,因为没有标准的探测 URL,并且受限门户网络可能会错误地允许或阻止(而不是重定向)此类探测。该 API 允许门户提供需要登录的明确信号,以及登录的 URL。

Android 11 支持 RFC7710bis 中描述的 DHCP 选项 114。我们可能会在将来的更新中添加对路由器公告选项的支持。如果设备在 DHCP 握手期间通过该选项获取受限门户 API URL,则设备在连接后立即获取 API 内容,并在网络为受限门户时(根据受限门户 API)提示用户登录。

如果 API 不可用,或者没有广告宣传门户,则系统将继续像以前一样使用 HTTP/HTTPS 探测检测门户并验证互联网连接。

场所发布的信息

Android 11 支持受限门户 API 中定义的 venue-info-url。此 URL 允许用户在浏览器中获取有关接入点场所的特定于上下文的 信息。默认情况下,用户可以在登录后从通知中或从网络设置中选择打开此 URL。

Screenshot showing the popup allowing the user to visit the venue
URL
图 1. 如果网络提供了场所 URL,则系统会弹出一个通知,允许用户访问该页面

Screenshot showing how to open the site from the Network details
screen
图 2. 从“网络详细信息”屏幕打开站点的按钮

未来的用例

虽然 Android 11 在发布时仅支持受限门户 API 的基本功能集,但 Google Play 系统更新可能会在发布后向设备交付新功能。我们鼓励网络运营商在实施受限门户 API 时,牢记未来可能出现的改进。

  • 会话时间(seconds-remaining)目前在默认的**设置**应用中用于告知用户门户剩余的时间。通过登录 URL 扩展会话的功能(can-extend-session)也可以通过 API 表达,以允许系统通知用户会话已过期或即将过期。
  • 数据限额(bytes-remaining)可以通过 API 发布,以便用户跟踪剩余数据。