Równoczesne korzystanie z punktów dostępu Wi-Fi

Android 12 wprowadza współbieżność punktów dostępu Wi-Fi, która umożliwia urządzeniu tworzenie 2 interfejsów punktu dostępu. Ta funkcja umożliwia urządzeniu obsługę tetheringu przez dwupasmowy hotspot Wi-Fi (miękki punkt dostępu). Szczegółowe informacje o obsłudze tetheringu przez pojedynczy hotspot Wi-Fi znajdziesz w artykule Hotspot Wi-Fi (miękki punkt dostępu).

Ta strona opisuje zachowanie urządzenia, gdy ta funkcja jest włączona, oraz zawiera szczegółowe informacje o implementacji dla producenta lub dostawcy urządzenia.

Jak to działa

Gdy współbieżność punktów dostępu Wi-Fi jest obsługiwana, urządzenie może utworzyć 2 interfejsy punktu dostępu, np.jeden interfejs działający w paśmie 2,4 GHz, a drugi w paśmie 5 GHz. Klienci mogą się wtedy połączyć z każdym z interfejsów punktu dostępu.

Gdy stos włącza miękki punkt dostępu, HAL Wi-Fi generuje pojedynczy interfejs pomostowy z 2 interfejsami punktu dostępu i udostępnia go stosowi Wi-Fi i łączności. Po włączeniu miękkiego punktu dostępu HAL Wi-Fi wskazuje, że dostępne są 2 interfejsy, i aktualizuje informacje (takie jak kanał operacyjny, przepustowość i BSSID) dla każdego punktu dostępu.

Aby oszczędzać energię, platforma wyłącza nieużywany punkt dostępu (2, 4 GHz, 5 GHz lub 6 GHz) po pewnym okresie nieaktywności. Platforma uznaje punkt dostępu za nieaktywny, gdy nie jest do niego podłączony żaden klient. Możesz dostosować długość tego okresu nieaktywności. Więcej informacji znajdziesz w artykule Dostosowywanie okresu nieaktywności.

Urządzenia obsługują współbieżność punktów dostępu Wi-Fi, korzystając z jednej z tych konfiguracji miękkiego punktu dostępu:

  • Konfigurowanie 2 pasm (kanał jest wybierany automatycznie przez platformę lub sterownik)
  • Konfigurowanie 2 kanałów w dwuzakresowym punkcie dostępu

Wymagania

Aby zaimplementować współbieżność punktów dostępu Wi-Fi, urządzenia muszą spełniać te wymagania:

  • Układ lub oprogramowanie układowe Wi-Fi musi obsługiwać 2 jednoczesne połączenia z punktem dostępu. Oprogramowanie układowe musi obsługiwać wszystkie kombinacje kanałów i pasm dla obu połączeń. Aby uniknąć problemów z wydajnością, zalecamy używanie układu Wi-Fi 2x2+2x2 z obsługą DBS.

  • Urządzenie musi obsługiwać te metody w HAL dostawcy Wi-Fi:

    • IWifiChip.createBridgedApIface()
    • IWifiChip.removeIfaceInstanceFromBridgedApIface()
    • IWifiApIface.resetToFactoryMacAddress()
    • IWifiApIface.getBridgedInstances()

Implementacja

Aby zaimplementować współbieżność punktów dostępu Wi-Fi:

  1. Włącz co najmniej jedną z tych funkcji (domyślnie wyłączonych) za pomocą nakładek zasobów środowiska wykonawczego:

    • config_wifiBridgedSoftApSupported: obsługuje wiele punktów dostępu, które są połączone.
    • config_wifiStaWithBridgedSoftApConcurrencySupported: obsługuje współbieżność stacji (STA) i wielu połączonych punktów dostępu.
  2. Urządzenia korzystające z HAL Wi-Fi AIDL lub HAL Wi-Fi HIDL 1.6 definiują AP_BRIDGED w kombinacji interfejsów HAL Wi-Fi. Więcej informacji znajdziesz w artykule Współbieżność wielu interfejsów Wi-Fi.

  3. Skonfiguruj połączony miękki punkt dostępu, wywołując jedną z tych metod:

  4. Zarejestruj wywołanie zwrotne, aby uzyskać informacje o możliwościach urządzenia, za pomocą WifiManager#registerSoftApCallback. SoftApCallback udostępnia te metody dla połączonej konfiguracji miękkiego punktu dostępu:

    SoftApCallback#onInfoChanged
    Zawiera informacje o działających instancjach miękkiego punktu dostępu.
    SoftApCallback#onConnectedClientsChanged
    Zawiera listę połączonych klientów dla instancji miękkiego punktu dostępu.

Dostosowywanie okresu nieaktywności

Aby dostosować długość okresu nieaktywności, skonfiguruj tę nakładkę, którą znajdziesz w packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml:

config_wifiFrameworkSoftApShutDownIdleInstanceInBridgedModeTimeoutMillisecond
Domyślny interwał limitu czasu wyłączenia. Jest prawidłowy tylko wtedy, gdy włączona jest opcja SoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled.
(Dostępne od wersji 13)
config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging
Określa, czy wyłączyć timer wyłączenia z powodu nieaktywności podczas ładowania.