强制门户 API 支持

从 Android 11 Beta 2 开始,系统支持 RFC7710bis 和相关 强制门户 API 中描述的部分功能。

该 API 提供了一种可靠的方式,让接入点将自己识别为强制门户。它还为接入点提供了新的用例,可以将会话和场所信息等内容发布给用户。

改进的强制门户检测

自 Android 5.0(API 级别 21)以来,Android 设备便能检测到强制门户,并通知用户需要登录网络才能访问互联网。强制门户是通过对已知目标(例如 connectivitycheck.gstatic.com)执行明文 HTTP 探测来检测的,如果探测收到 HTTP 重定向,设备就会假定该网络是强制门户。这种技术可能不可靠,因为没有标准的探测网址,而且此类探测可能会被强制门户网络错误地允许或阻止(而不是重定向)。该 API 允许门户提供登录所需的积极信号,以及用于登录的网址。

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

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

场所发布的信息

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

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

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

未来用例

虽然 Android 11 发布时仅支持强制门户 API 的一组基本功能,但新功能可能会在发布后通过 Google Play 系统更新提供给设备。我们鼓励网络运营商在实施强制门户 API 时,考虑到未来可能的改进

  • 会话时间(seconds-remaining)目前在默认的设置应用中用于告知用户门户上剩余的时间。通过登录网址(can-extend-session)延长会话的功能也可以通过 API 表达,以便系统通知用户会话已过期或即将过期。
  • 数据流量上限(bytes-remaining)可以通过 API 公布,以便用户跟踪剩余数据。