Android 9 では、デバイスが STA モードと AP モードで同時に動作できる機能が導入されています。デュアル バンド同時 (DBS) をサポートするデバイスの場合、この機能により、ユーザーがホットスポット (softAP) を有効にするときに 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) を使用して次のいずれかを行うことができます。
- AP を STA と同じチャネルに移動します
- AP を STA とは別の帯域に移動します。