Android 9 では、デバイスが STA モードと AP モードで同時に動作できるようになりました。この機能により、デュアルバンド同時接続(DBS)をサポートするデバイスでは、アクセス ポイント(Soft AP)を有効にしながら STA Wi-Fi の接続を維持するという、従来にはない接続方法が可能になります。
例とソース
Wi-Fi STA/AP の同時実行は、デフォルトの AOSP Android フレームワーク コードでサポートされています。Wi-Fi HAL で説明しているように、これはリファレンス HAL 実装でもサポートされています。次の「実装」セクションで説明する WIFI_HIDL_FEATURE_DUAL_INTERFACE
のビルド日時のフラグにより、STA と AP の同時実行のサポートを示すインターフェースの同時実行性という仕様が有効になります。
実装
Wi-Fi STA と AP の同時実行をデバイスに実装するには:
ビルド日時のフラグをオンにして、HAL で 2 つのインターフェースのサポートを有効にします。フラグは
device/<oem>/<device>/BoardConfig-common.mk
にあります。- WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
次の 2 つのネットワーク インターフェースを公開します。
- wlan0 と wlan1
WIFI_HAL_INTERFACE_COMBINATIONS
フラグが指定されている場合、WIFI_HIDL_FEATURE_DUAL_INTERFACE
フラグは無視されます。詳しくは、Wi-Fi マルチインターフェースの同時実行をご覧ください。
検証
機能が意図したとおりに動作することを確認するには、統合テスト(ACTS)と手動テストの両方を実行します。
tools/test/connectivity/acts_tests/tests/google/wifi
にある ACTS ファイル WifiStaApConcurrencyTest.py
には、STA と AP のさまざまな組み合わせを提示する一連のテストが含まれています。
この機能を手動で検証するには、UI とは別に STA と AP のインターフェースを有効または無効にします。
AP と STA が同じサブネット上にある場合、テスト対象のデバイス(DUT)でルーティングの問題が発生することがあります。衝突を回避するには、AP を別のサブネットに変更してください。
一部の Wi-Fi チップベンダーでは、STA と AP が同じ帯域でも異なるチャネルにある場合、無線通信がタイムシェアリング モードになるよう設定している場合があります。これにより、パフォーマンスが大幅に低下します。この問題に対処するために、チップは次のいずれかのチャネル スイッチ回避(CSA)を使用することがあります。
- STA と同じチャネルに AP を移動する
- AP を STA から別のバンドに移動する