Android 12 では、Wi-Fi AP / AP の同時実行が導入され、デバイスが 2 つのアクセス ポイント(AP)インターフェースを作成できるようになりました。この機能により、デバイスはデュアルバンド同時接続(DBS)Wi-Fi アクセス ポイント(Soft AP)を使ったテザリングをサポートできます。単一の Wi-Fi アクセス ポイントを使ったテザリングのサポートの詳細については、Wi-Fi アクセス ポイント(Soft AP)のサポートをご覧ください。
このページでは、デバイス メーカーとベンダーを対象に、この機能を有効にした場合のデバイスの動作と実装の詳細について説明します。
仕組み
Wi-Fi AP / AP の同時実行をサポートするデバイスでは、2 つの AP インターフェース(たとえば、2.4 GHz 帯域と 5 GHz 帯域で動作する 2 つのインターフェースなど)を作成でき、クライアントは両方の AP インターフェースに接続できます。
Wi-Fi HAL では 2 つの AP インターフェースからなる単一のブリッジ接続されたインターフェースを生成し、スタックが Soft AP を有効にしたときに、それを Wi-Fi と接続スタックに公開します。Soft AP が有効になると、Wi-Fi HAL は 2 つのインターフェースが利用可能であることを通知し、各 AP の情報(動作チャネル、帯域幅、BSSID など)を更新します。
電力を節約するため、一定期間非アクティブで使用されていない AP(2.4 GHz、5 GHz、または 6 GHz)は、フレームワークによって無効にされます。フレームワークによって AP が非アクティブであると見なされるのは、クライアントが接続されていないときです。デバイス メーカーは、この非アクティブ期間の長さをカスタマイズできます。詳細については、非アクティブ期間のカスタマイズをご覧ください。
デバイスで Wi-Fi AP / AP の同時実行をサポートするには、次のブリッジ接続された Soft AP 構成のいずれかを使用します。
- 2 つの周波数帯を構成する(チャネルはフレームワークまたはドライバによって自動的に選択される)
- デュアルバンド AP で 2 つのチャネルを構成する
要件
Wi-Fi AP / AP の同時実行を実装するには、デバイスが次の要件を満たしている必要があります。
Wi-Fi チップまたはファームウェアは、2 つの同時 AP 接続をサポートする必要があります。ファームウェアは、両方の接続ですべてのチャネルと帯域の組み合わせをサポートする必要があります。パフォーマンスの問題を回避するため、2x2 + 2x2 DBS 対応の Wi-Fi チップを使用することをおすすめします。
デバイスは、Wi-Fi ベンダー HAL で以下のメソッドをサポートする必要があります。
IWifiChip.createBridgedApIface()
IWifiChip.removeIfaceInstanceFromBridgedApIface()
IWifiApIface.resetToFactoryMacAddress()
IWifiApIface.getBridgedInstances()
実装
Wi-Fi AP / AP の同時実行を実装する手順は次のとおりです。
ランタイム リソース オーバーレイを使用して、次の関数のうち少なくとも 1 つを有効にします(デフォルトでは無効です)。
config_wifiBridgedSoftApSupported
: まとめてブリッジ接続される複数の AP をサポートします。config_wifiStaWithBridgedSoftApConcurrencySupported
: ステーション(STA)と、ブリッジ接続される複数の AP との同時実行をサポートします。
AIDL Wi-Fi HAL または HIDL Wi-Fi HAL 1.6 を使用するデバイスでは、Wi-Fi HAL インターフェースの組み合わせで
AP_BRIDGED
を定義します。詳細については、Wi-Fi マルチインターフェースの同時実行をご覧ください。次のいずれかのメソッドを呼び出して、ブリッジ接続された Soft AP を構成します。
WifiManager#registerSoftApCallback
を使用して、デバイス機能を取得するコールバックを登録します。SoftApCallback
コールバックは、ブリッジ接続された Soft AP を構成するための以下のメソッドを提供します。SoftApCallback#onInfoChanged
: 実行中の Soft AP インスタンスに関する情報を提供します。SoftApCallback#onConnectedClientsChanged
: Soft AP インスタンスの接続済みクライアントのリストを提供します。
非アクティブ期間のカスタマイズ
非アクティブ期間の長さをカスタマイズするには、packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
にある次のオーバーレイを設定します。
config_wifiFrameworkSoftApShutDownIdleInstanceInBridgedModeTimeoutMillisecond
: デフォルトのシャットダウン タイムアウト間隔。SoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled
が有効になっている場合にのみ有効です。(Android 13 以降で利用可能)
config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging
: 充電中に非アクティブ シャットダウン タイマーを無効にするかどうかを指定します。