キャプティブ ポータル 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 はログイン後の通知またはネットワーク設定から開けます。
図 1. ネットワークが場所の URL を提供している場合、そのページにアクセスできるようにする通知がポップアップ表示されます
図 2. [ネットワークの詳細] 画面からサイトを開くボタン
今後のユースケース
Android 11 のリリース時点ではキャプティブ ポータル API の基本的な機能セットのみがサポートされていますが、リリース後に Google Play のシステム アップデートにより、デバイスに新しい機能が配信される可能性があります。ネットワーク事業者には、今後の改善を念頭に置きながらキャプティブ ポータル API を実装することをおすすめします。
- セッション時間(
seconds-remaining
)は現在、デフォルトの設定アプリで、ポータルの残り時間をユーザーに伝えるために使用されています。ログイン URL(can-extend-session
)を介してセッションを拡張する機能は、期限切れのセッションまたは期限切れ間近のセッションについてユーザーに通知できるように、API を通じて表現することもできます。
- ユーザーが残りのデータを追跡できるように、API を通じてデータ量の上限(
bytes-remaining
)をアドバタイズできます。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-08-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-08-27 UTC。"],[],[],null,["Starting in Android 11 Beta 2, the system supports a subset of\nfunctionality described by\n[RFC7710bis](https://tools.ietf.org/html/draft-ietf-capport-rfc7710bis)\nand the associated [captive portal\nAPI](https://tools.ietf.org/html/draft-ietf-capport-api).\n\nThe API provides a reliable way for access points to identify themselves as\ncaptive portals. It also enables new use-cases for access points to publish\ninformation to their users, such as session and venue information.\n\nImproved captive portal detection\n\nSince Android 5.0 (API level 21), Android devices have detected captive portals\nand notified the user that they need to sign in to the network to access the\ninternet. Captive portals were detected using cleartext HTTP probes to known\ndestinations (such as `connectivitycheck.gstatic.com`), and if the probe\nreceived an HTTP redirect, the device assumed that the network was a captive\nportal. This technique can be unreliable because there is no standard URL to\nprobe, and such probes could be mistakenly allowed or blocked (instead of\nredirected) by captive portal networks. The API allows portals to provide a\npositive signal that login is required, along with a URL to log in to.\n\nAndroid 11 supports DHCP option 114 as described in RFC7710bis.\nWe may add support for the router advertisement option in a future update. If\nthe device gets a captive portal API URL through that option during the DHCP\nhandshake, devices fetch the API contents immediately after connecting and\nprompt users to log in if the network is captive, as per the captive portal API.\n\nIf the API is not available, or if no portal is advertised, the system will\ncontinue to detect portals and verify internet connectivity using HTTP/HTTPS\nprobes, as before.\n\nVenue-published information\n\nAndroid 11 supports the `venue-info-url` defined in the captive\nportal API. This URL allows users to obtain context-specific information about\nthe access point venue in their browser. By default, users can open this URL if\nthey choose to do so from a notification after logging in, or from their network\nsettings.\n\n\u003cbr /\u003e\n\n\n**Figure 1.** If the network provides a venue URL, the system pops up a notice\nallowing the user to visit that page\n\n\u003cbr /\u003e\n\n\n**Figure 2.** Button to open the site from the Network details screen\n\nFuture use cases\n\nWhile at launch Android 11 supports only a basic set of\nfunctionality from the captive portal API, new functionality may be delivered to\ndevices via Google Play system updates after launch. We encourage network\noperators to implement the captive portal API while keeping future possible\nimprovements in mind:\n\n- Session time (`seconds-remaining`) is currently used in the default **Settings** app to inform users on how much time is left on the portal. The ability to extend the session via the login URL (`can-extend-session`) can also be expressed through the API to allow the system to notify the user about expired or soon-to-expire sessions.\n- Data caps (`bytes-remaining`) can be advertised through the API to allow users to keep track of remaining data."]]