Android 12 introduce la contemporaneità Wi-Fi AP/AP, che consente ai dispositivi di creare due interfacce del punto di accesso (AP). Questa funzionalità consente ai dispositivi di supportare il tethering tramite un hotspot Wi-Fi (soft AP) dual band simultaneo (DBS). Per informazioni dettagliate sul supporto del tethering tramite un singolo hotspot Wi-Fi, consulta Supporto hotspot Wi-Fi (Soft AP).
Questa pagina descrive il comportamento del dispositivo quando questa funzionalità è attivata e i dettagli di implementazione per i produttori e i fornitori di dispositivi.
Come funziona
Quando è supportata la contemporaneità Wi-Fi AP/AP, il dispositivo può creare due interfacce AP, ad esempio un'interfaccia che funzioni sulla banda a 2, 4 GHz e un'altra sulla banda a 5 GHz. I client possono quindi connettersi a ciascuna delle interfacce dell'AP.
L'HAL Wi-Fi genera un'unica interfaccia in bridge con le due interfacce AP e la espone allo stack Wi-Fi e di connettività quando lo stack attiva un soft AP. Dopo l'attivazione dell'AP soft, l'HAL Wi-Fi indica che sono disponibili due interfacce e aggiorna le informazioni (ad esempio canale di funzionamento, larghezza di banda e BSSID) per ogni AP.
Per risparmiare energia, il framework disabilita un punto di accesso inutilizzato (2, 4 GHz, 5 GHz o 6 GHz) dopo un periodo di inattività. Il framework considera un AP inattivo quando non è connesso alcun client. I produttori di dispositivi possono personalizzare la durata di questo periodo di inattività. Per ulteriori informazioni, consulta Personalizzare il periodo di inattività.
I dispositivi supportano la contemporaneità Wi-Fi AP/AP utilizzando una delle seguenti configurazioni soft AP in bridge:
- Configurazione di due bande (il canale viene selezionato automaticamente dal framework o dal driver)
- Configurazione di due canali su un AP dual band
Requisiti
Per implementare la concorrenza AP/AP Wi-Fi, i dispositivi devono soddisfare i seguenti requisiti:
Il chip o il firmware Wi-Fi deve supportare due connessioni AP contemporaneamente. Il firmware deve supportare tutte le combinazioni di canali e bande per entrambe le connessioni. Per evitare problemi di prestazioni, ti consigliamo di utilizzare un chip Wi-Fi compatibile con DBS 2x2+2x2.
Il dispositivo deve supportare i seguenti metodi nell'HAL del fornitore Wi-Fi:
IWifiChip.createBridgedApIface()
IWifiChip.removeIfaceInstanceFromBridgedApIface()
IWifiApIface.resetToFactoryMacAddress()
IWifiApIface.getBridgedInstances()
Implementazione
Per implementare la concorrenza AP/AP Wi-Fi:
Attiva almeno una delle seguenti funzioni (disattivate per impostazione predefinita) utilizzando gli overlay delle risorse di runtime:
config_wifiBridgedSoftApSupported
: supporta più AP raggruppati.config_wifiStaWithBridgedSoftApConcurrencySupported
: supporta la concorrenza di una stazione (STA) e di più AP in bridge.
Per i dispositivi che utilizzano AIDL Wi-Fi HAL o HIDL Wi-Fi HAL 1.6, definisci
AP_BRIDGED
nella combinazione di interfaccia Wi-Fi HAL. Per maggiori dettagli, consulta Contemporaneità multi-interfaccia Wi-Fi.Configura la configurazione del soft AP in bridge chiamando uno dei seguenti metodi:
Registra un callback per ottenere le funzionalità del dispositivo utilizzando
WifiManager#registerSoftApCallback
. Il callbackSoftApCallback
fornisce i seguenti metodi per una configurazione del soft AP collegato:SoftApCallback#onInfoChanged
: fornisce informazioni sulle istanze soft AP in esecuzione.SoftApCallback#onConnectedClientsChanged
: fornisce un elenco di client connessi per un'istanza soft AP.
Personalizzare il periodo di inattività
Per personalizzare la durata del periodo di inattività, configura il seguente overlay, disponibile in packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml
:
config_wifiFrameworkSoftApShutDownIdleInstanceInBridgedModeTimeoutMillisecond
: l'intervallo predefinito per il timeout di arresto. Valido solo seSoftApConfiguration#setBridgedModeOpportunisticShutdownEnabled
è abilitato.(Disponibile dalla versione 13)
config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging
: indica se disattivare il timer di spegnimento per inattività durante la ricarica.