A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Como procurar uma rede Wi-Fi preferencial de descarga
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
As buscas por redes preferenciais de descarga (PNO, na sigla em inglês) do Wi-Fi são buscas de Wi-Fi de baixa potência que
ocorrem em intervalos regulares quando um dispositivo é desconectado do Wi-Fi e a
tela está desligada. As buscas PNO são usadas para encontrar e
se conectar a redes salvas. Essas verificações são programadas pelo framework usando o
comando NL80211_CMD_START_SCHED_SCAN
. Para mais informações, consulte
nl80211.h.
Em dispositivos com o Android 9 ou versões anteriores, quando o dispositivo
é desconectado do Wi-Fi e a tela está desligada, as verificações de PNO ocorrem em intervalos de 20 segundos
para as três primeiras verificações e depois diminuem para uma verificação a cada 60 segundos
em todas as verificações subsequentes. A verificação de PNO é interrompida quando uma rede salva é encontrada ou
a tela é ativada.
O Android 10 apresenta um método de API opcional em WifiManager
,
chamado setDeviceMobilityState()
,
que aumenta o intervalo entre
as verificações de PNO com base no estado de mobilidade do dispositivo para reduzir o consumo de energia.
Os estados de mobilidade possíveis são:
DEVICE_MOBILITY_STATE_UNKNOWN
:
mobilidade desconhecida
DEVICE_MOBILITY_STATE_HIGH_MVMT
:
Em uma bicicleta ou em um veículo motorizado
DEVICE_MOBILITY_STATE_LOW_MVMT
:
caminhada ou corrida
DEVICE_MOBILITY_STATE_STATIONARY
:
não está se movendo
Se o dispositivo estiver parado, o framework do Android vai aumentar o
intervalo entre as verificações de PNO de 60 segundos para 180 segundos para reduzir o consumo
de energia. Essa otimização é feita com a suposição de que é
improvável que o dispositivo encontre novas redes em verificações de PNO quando não estiver em movimento.
Se o dispositivo estiver em qualquer outro estado de mobilidade ou se o método não for chamado, ele
usará o comportamento de verificação de PNO padrão.
Implementação
Para implementar esse recurso de otimização de energia em um dispositivo com o Android
10 ou mais recente, derive as informações de mobilidade do dispositivo
e chame o método setDeviceMobilityState()
de um app de sistema personalizado.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]