A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Scansione per l'offload della rete preferita Wi-Fi
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Le ricerche di reti preferite Wi-Fi (PNO) sono ricerche Wi-Fi a bassa potenza che si verificano a intervalli regolari quando un dispositivo è disconnesso dal Wi-Fi e lo schermo è spento. Le ricerche PNO vengono utilizzate per trovare e connettersi alle reti salvate. Queste scansioni vengono pianificate dal framework utilizzando il comando NL80211_CMD_START_SCHED_SCAN
. Per ulteriori informazioni, consulta
nl80211.h.
Sui dispositivi con Android 9 o versioni precedenti, quando il dispositivo è disconnesso dal Wi-Fi e lo schermo è spento, le ricerche PNO vengono eseguite a intervalli di 20 secondi per le prime tre ricerche, quindi rallentano a una ricerca ogni 60 secondi per tutte le ricerche successive. La ricerca di reti PNO si interrompe quando viene trovata una rete salvata o quando lo schermo viene attivato.
Android 10 introduce un metodo API facoltativo denominato
setDeviceMobilityState()
in WifiManager
che aumenta l'intervallo tra le ricerche PNO in base allo stato di mobilità del dispositivo per ridurre il consumo energetico.
I possibili stati di mobilità sono:
DEVICE_MOBILITY_STATE_UNKNOWN
:
Mobilità sconosciuta
DEVICE_MOBILITY_STATE_HIGH_MVMT
:
In bicicletta o in un veicolo a motore
DEVICE_MOBILITY_STATE_LOW_MVMT
:
A piedi o in corsa
DEVICE_MOBILITY_STATE_STATIONARY
:
Nessuna attività
Se il dispositivo è fermo, il framework Android aumenta l'intervallo tra le ricerche PNO da 60 a 180 secondi per ridurre il consumo di energia. Questa ottimizzazione viene eseguita presupponendo che sia improbabile che il dispositivo trovi nuove reti nelle scansioni PNO quando non è in movimento.
Se il dispositivo è in un altro stato di mobilità o se il metodo non viene chiamato, il dispositivo utilizza il comportamento di ricerca PNO predefinito.
Implementazione
Per implementare questa funzionalità di ottimizzazione della potenza su un dispositivo con Android 10 o versioni successive, ricava le informazioni sulla mobilità del dispositivo e chiama il metodo setDeviceMobilityState()
da un'app di sistema personalizzata.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Wi-Fi preferred network offload scanning\n\nWi-Fi preferred network offload (PNO) scans are low-powered Wi-Fi scans that\noccur at regular intervals when a device is disconnected from Wi-Fi and the\nscreen is off. PNO scans are used to find and\nconnect to saved networks. These scans are scheduled by the framework using the\n`NL80211_CMD_START_SCHED_SCAN` command. For more information, see\n[nl80211.h](https://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless.git/tree/include/uapi/linux/nl80211.h).\n\nOptimize power usage with device mobility information\n-----------------------------------------------------\n\nOn devices running Android 9 or lower, when the device\nis disconnected from Wi-Fi and the screen is off, PNO scans occur at 20 second\nintervals for the first three scans, then slow down to one scan every 60 seconds\nfor all subsequent scans. PNO scanning stops when a saved network is found or\nthe screen is turned on.\n\nAndroid 10 introduces an optional API method named\n[`setDeviceMobilityState()`](https://cs.android.com/android/platform/superproject/+/android-latest-release:packages/modules/Wifi/framework/java/android/net/wifi/WifiManager.java?q=func:setDeviceMobilityState)\nin `WifiManager` that increases the interval between\nPNO scans based on the device's mobility state to reduce power consumption.\n\nThe possible mobility states are:\n\n- `DEVICE_MOBILITY_STATE_UNKNOWN`: Unknown mobility\n- `DEVICE_MOBILITY_STATE_HIGH_MVMT`: On a bike or in a motor vehicle\n- `DEVICE_MOBILITY_STATE_LOW_MVMT`: Walking or running\n- `DEVICE_MOBILITY_STATE_STATIONARY`: Not moving\n\nIf the device is stationary, the Android framework increases the\ninterval between PNO scans from 60 seconds to 180 seconds to reduce power\nconsumption. This optimization is made on the assumption that the device is\nunlikely to find any new networks in PNO scans when the device is not moving.\n\nIf the device is in any other mobility state or if the method isn't called, the\ndevice uses the default PNO scan behavior.\n\n### Implementation\n\nTo implement this power-optimizing feature on a device running Android\n10 or higher, derive the device mobility information\nand call the `setDeviceMobilityState()` method from a custom system app."]]