Android 12では、Wi-Fi AP / AP同時実行が導入されています。これにより、デバイスは2つのアクセスポイント(AP)インターフェイスを作成できます。この機能により、デバイスはデュアルバンド同時(DBS)Wi-Fiホットスポット(ソフトAP)を介したテザリングをサポートできます。単一のWi-Fiホットスポットを介したテザリングのサポートの詳細については、「テザリングのWi-Fiホットスポット(ソフトAP)サポート」を参照してください。
このページでは、この機能が有効になっている場合のデバイスの動作と、デバイスの製造元とベンダーの実装の詳細について説明します。
使い方
Wi-Fi AP / AP同時実行がサポートされている場合、デバイスは2つのAPインターフェイスを作成できます。たとえば、1つは2.4Ghz帯域で動作し、もう1つは5Ghz帯域で動作します。その後、クライアントは各APインターフェイスに接続できます。
Wi-Fi HALは、2つのAPインターフェイスを備えた単一のブリッジインターフェイスを生成し、スタックがソフトAPを有効にすると、Wi-Fiおよび接続スタックに公開します。ソフトAPが有効になると、Wi-Fi HALは2つのインターフェイスが使用可能であることを示し、各APの情報(操作チャネル、帯域幅、BSSIDなど)を更新します。
電力を節約するために、フレームワークは、一定期間非アクティブになった後、未使用のAP(2.4Ghzまたは5GHz)を無効にします。フレームワークは、クライアントが接続されていない場合、APは非アクティブであると見なします。デバイスメーカーは、この非アクティブ期間の長さをカスタマイズできます。詳細については、非アクティブ期間のカスタマイズを参照してください。
デバイスは、次のブリッジドソフトAP構成のいずれかを使用して、Wi-Fi AP / APの同時実行性をサポートします。
- 2つのバンドの構成(チャネルはフレームワークまたはドライバーによって自動的に選択されます)
- デュアルバンドAPでの2つのチャネルの構成
要件
Wi-Fi AP / APの同時実行性を実装するには、デバイスが次の要件を満たしている必要があります。
Wi-Fiチップまたはファームウェアは、2つの同時AP接続をサポートする必要があります。ファームウェアは、両方の接続ですべてのチャネルと帯域の組み合わせをサポートする必要があります。パフォーマンスの問題を回避するために、2x2 + 2x2DBS対応のWi-Fiチップを使用することをお勧めします。
デバイスは、ベンダーHALバージョン1.5で次のAPIをサポートする必要があります
IWifiChip.createBridgedApIface()
-
IWifiChip.removeIfaceInstanceFromBridgedApIface()
-
IWifiApIface.resetToFactoryMacAddress()
-
IWifiApIface.getBridgedInstances()
HAL Wi-Fiインターフェイスの組み合わせでは、
[{AP} <= 2, ...]
などの指定形式を使用して2つの同時APインターフェイスを公開することはできません。これは、Wi-FiHALが単一のブリッジインターフェイスをWi-Fiおよび接続スタックに公開するためです。詳細については、「 Wi-Fiマルチインターフェイス同時実行」を参照してください。
実装
Wi-Fi AP / APの同時実行性を実装するには、次の手順を実行します。
ランタイムリソースオーバーレイを使用して、次の機能の少なくとも1つを有効にします(デフォルトでは無効になっています)。
-
config_wifiBridgedSoftApSupported
:一緒にブリッジされる複数のAPをサポートします config_wifiStaWithBridgedSoftApConcurrencySupported
:ステーション(STA)と複数のブリッジAPの同時実行をサポートします
-
次のいずれかの方法を呼び出して、ブリッジソフトAP構成を構成します。
WifiManager#registerSoftApCallback
を使用して、デバイス機能を取得するためのコールバックを登録します。SoftApCallback
コールバックは、ブリッジされたソフトAP構成に対して次のメソッドを提供します。-
SoftApCallback#onInfoChanged
:実行中のソフトAPインスタンスに関する情報を提供します SoftApCallback#onConnectedClientsChanged
:ソフトAPインスタンスの接続されたクライアントのリストを提供します
-
非アクティブ期間のカスタマイズ
非アクティブ期間の長さをカスタマイズするには、 packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
にある次のオーバーレイを構成します。
-
config_wifiFrameworkSoftApShutDownIdleInstanceInBridgedModeTimeoutMillisecond
:デフォルトのシャットダウンタイムアウト間隔。SoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled
が有効になっている場合にのみ有効です。