Android 12 wprowadza współbieżność punktów dostępu Wi-Fi, która umożliwia urządzeniu tworzenie 2 interfejsów punktów dostępu. Ta funkcja umożliwia urządzeniu obsługę tetheringu za pomocą dwupasmowego, jednoczesnego (DBS) hotspotu Wi-Fi (miękki punkt dostępu). Więcej informacji o obsłudze tetheringu za pomocą jednego hotspotu Wi-Fi znajdziesz w sekcji Hotspot Wi-Fi (Soft AP).
Na tej stronie opisujemy działanie urządzenia, gdy ta funkcja jest włączona, oraz podajemy szczegóły implementacji dla producentów i dostawców urządzeń.
Jak to działa
Gdy obsługiwana jest jednoczesna praca punktu dostępu Wi-Fi, urządzenie może utworzyć 2 interfejsy punktu dostępu, np.jeden działający w paśmie 2,4 GHz, a drugi w paśmie 5 GHz. Klienci mogą następnie połączyć się z każdym interfejsem punktu dostępu.
Warstwa HAL Wi-Fi generuje pojedynczy interfejs pomostowy z 2 interfejsami punktu dostępu i udostępnia go stosowi Wi-Fi i łączności, gdy stos włącza programowy punkt dostępu. Po włączeniu programowego punktu dostępu interfejs HAL Wi-Fi wskazuje, że dostępne są 2 interfejsy, i aktualizuje informacje (takie jak kanał operacyjny, pasmo i identyfikator 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. Framework uznaje punkt dostępu za nieaktywny, gdy nie jest z nim połą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ść punktu dostępu Wi-Fi/punktu dostępu, korzystając z jednej z tych konfiguracji połączonego programowego punktu dostępu:
- Konfigurowanie 2 pasm (kanał jest wybierany automatycznie przez platformę lub sterownik)
- Konfigurowanie 2 kanałów na dwupasmowym punkcie dostępu
Wymagania
Aby wdrożyć współbieżność punktów dostępu Wi-Fi, urządzenia muszą spełniać te wymagania:
- Chip Wi-Fi lub oprogramowanie musi obsługiwać 2 jednoczesne połączenia z punktem dostępu. Oprogramowanie musi obsługiwać wszystkie kombinacje kanałów i pasma w przypadku obu połączeń. Aby uniknąć problemów z wydajnością, zalecamy używanie układu Wi-Fi obsługującego DBS w konfiguracji 2x2+2x2. 
- Urządzenie musi obsługiwać te metody w warstwie HAL dostawcy Wi-Fi: - IWifiChip.createBridgedApIface()
- IWifiChip.removeIfaceInstanceFromBridgedApIface()
- IWifiApIface.resetToFactoryMacAddress()
- IWifiApIface.getBridgedInstances()
 
Implementacja
Aby wdrożyć współbieżność punktów dostępu Wi-Fi, wykonaj te czynności:
- Włącz co najmniej jedną z tych funkcji (domyślnie wyłączonych) za pomocą nakładek na zasoby środowiska wykonawczego: - config_wifiBridgedSoftApSupported: Obsługuje wiele punktów dostępu połączonych ze sobą w sieć.
- config_wifiStaWithBridgedSoftApConcurrencySupported: Obsługuje jednoczesne połączenie stacji (STA) i wielu połączonych mostem punktów dostępu.
 
- Urządzenia korzystające z AIDL Wi-Fi HAL lub HIDL Wi-Fi HAL 1.6 definiują - AP_BRIDGEDw kombinacji interfejsów Wi-Fi HAL. Więcej informacji znajdziesz w artykule Współbieżność wielu interfejsów Wi-Fi.
- Skonfiguruj mostkową konfigurację programowego punktu dostępu, wywołując jedną z tych metod: 
- Zarejestruj wywołanie zwrotne, aby uzyskać możliwości urządzenia za pomocą funkcji - WifiManager#registerSoftApCallback.- SoftApCallbackudostępnia te metody konfiguracji połączonego programowego punktu dostępu:- SoftApCallback#onInfoChanged
- Zawiera informacje o działających instancjach soft AP.
- SoftApCallback#onConnectedClientsChanged
- Zawiera listę połączonych klientów w przypadku instancji punktu dostępu.
 
Dostosowywanie okresu nieaktywności
Aby dostosować długość okresu bezczynności, skonfiguruj tę nakładkę, którą znajdziesz w packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml:
- config_wifiFrameworkSoftApShutDownIdleInstanceInBridgedModeTimeoutMillisecond
- Domyślny interwał czasu oczekiwania na wyłączenie. Obowiązuje tylko wtedy, gdy włączona jest funkcja SoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled.
- (Dostępne od wersji 13)
- config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging
- Określa, czy wyłączyć timer wyłączania z powodu bezczynności podczas ładowania.
