キャプティブ ポータル API のサポート

Android 11 ベータ版 2 以降、システムは RFC7710bis に記載されている機能のサブセットと、関連するキャプティブ ポータル API をサポートしています。

この API は、アクセス ポイントをキャプティブ ポータルとして識別するための、信頼性の高い方法を提供します。また、アクセス ポイントの新しいユースケースでは、セッションや場所などの情報をユーザーに公開できます。

キャプティブ ポータル検出の改善

Android 5.0(API レベル 21)以降、Android デバイスはキャプティブ ポータルを検出し、インターネットにアクセスするにはネットワークにログインする必要があることをユーザーに通知しています。キャプティブ ポータルは既知の宛先(connectivitycheck.gstatic.com など)へのクリアテキスト HTTP プローブを使用して検出されていました。また、プローブが 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 はログイン後の通知またはネットワーク設定から開けます。

場所の URL にアクセスできるようにするポップアップのスクリーンショット
図 1. ネットワークが場所の URL を提供している場合、そのページにアクセスできるようにする通知がポップアップ表示されます

[ネットワークの詳細] 画面からサイトを開く方法のスクリーンショット
図 2. [ネットワークの詳細] 画面からサイトを開くボタン

今後のユースケース

Android 11 のリリース時点ではキャプティブ ポータル API の基本的な機能セットのみがサポートされていますが、リリース後に Google Play のシステム アップデートにより、デバイスに新しい機能が配信される可能性があります。ネットワーク事業者には、今後の改善を念頭に置きながらキャプティブ ポータル API を実装することをおすすめします。

  • セッション時間(seconds-remaining)は現在、デフォルトの設定アプリで、ポータルの残り時間をユーザーに伝えるために使用されています。ログイン URL(can-extend-session)を介してセッションを拡張する機能は、期限切れのセッションまたは期限切れ間近のセッションについてユーザーに通知できるように、API を通じて表現することもできます。
  • ユーザーが残りのデータを追跡できるように、API を通じてデータ量の上限(bytes-remaining)をアドバタイズできます。