Ricerca di offload rete preferita

Le ricerche PNO (Wi-Fi preferred network offload) sono scansioni di reti Wi-Fi a basso consumo che si verificano a intervalli regolari quando un dispositivo viene disconnesso dalla rete Wi-Fi lo schermo non è attivo. Le scansioni PNO vengono utilizzate per trovare connettersi a reti salvate. Queste analisi vengono programmate dal framework utilizzando Comando NL80211_CMD_START_SCHED_SCAN. Per ulteriori informazioni, vedi nl80211.h

Ottimizza l'utilizzo dell'energia con informazioni sulla mobilità del dispositivo

Sui dispositivi con Android 9 o versioni precedenti, quando è disconnesso dalla rete Wi-Fi e lo schermo è spento, le ricerche PNO vengono eseguite dopo 20 secondi a intervalli per le prime tre scansioni, quindi rallenta fino a una scansione ogni 60 secondi per tutte le scansioni successive. La scansione PNO si interrompe quando viene trovata una rete salvata o che lo schermo sia acceso.

Android 10 introduce un metodo API facoltativo denominato setDeviceMobilityState() in WifiManager che aumenta l'intervallo PNO esegue scansioni in base allo stato di mobilità del dispositivo per ridurre il consumo energetico.

I possibili stati della mobilità sono:

  • DEVICE_MOBILITY_STATE_UNKNOWN: Mobilità sconosciuta
  • DEVICE_MOBILITY_STATE_HIGH_MVMT: Hai viaggiato in bicicletta o in un veicolo a motore
  • DEVICE_MOBILITY_STATE_LOW_MVMT: Camminata o corsa
  • DEVICE_MOBILITY_STATE_STATIONARY: Attività troppo breve

Se il dispositivo è fermo, il framework Android aumenta intervallo tra le scansioni PNO da 60 secondi a 180 secondi per ridurre l'alimentazione il consumo eccessivo. Questa ottimizzazione si basa sul presupposto che il dispositivo è improbabile trovare nuove reti nelle scansioni PNO quando il dispositivo non è in movimento.

Se il dispositivo è in qualsiasi altro stato di mobilità o se il metodo non viene chiamato, il dispositivo utilizza il comportamento di scansione PNO predefinito.

Implementazione

Per implementare questa funzionalità di ottimizzazione energetica su un dispositivo con Android, 10 o versioni successive, ricava le informazioni sulla mobilità del dispositivo e richiamare il metodo setDeviceMobilityState() da un'app di sistema personalizzata.