Análisis de aligeramiento de red Wi-Fi preferido

Los escaneos de aligeramiento de red preferido (PNO) de Wi-Fi son análisis de Wi-Fi de baja potencia que se producen a intervalos regulares cuando un dispositivo se desconecta de la red Wi-Fi y el la pantalla está apagada. Los análisis de la PNO se utilizan para encontrar y conectarte a redes guardadas. El framework programa estos análisis con el Comando NL80211_CMD_START_SCHED_SCAN. Para obtener más información, consulta nl80211.h.

Optimiza el uso de energía con la información sobre movilidad del dispositivo

En dispositivos con Android 9 o versiones anteriores, cuando el dispositivo se desconecta de la red Wi-Fi y la pantalla está apagada, las búsquedas PNO se realizan a los 20 segundos durante las primeras tres búsquedas y, luego, desacelera a un análisis cada 60 segundos para todos los análisis posteriores. El análisis de la PNO se detiene cuando se encuentra una red guardada o que la pantalla esté encendida.

Android 10 introduce un método de API opcional llamado setDeviceMobilityState() en WifiManager que aumenta el intervalo entre La PNO realiza búsquedas según el estado de movilidad del dispositivo para reducir el consumo de energía.

Los posibles estados de movilidad son los siguientes:

  • DEVICE_MOBILITY_STATE_UNKNOWN Movilidad desconocida
  • DEVICE_MOBILITY_STATE_HIGH_MVMT En bicicleta o vehículo motorizado
  • DEVICE_MOBILITY_STATE_LOW_MVMT Caminar o correr
  • DEVICE_MOBILITY_STATE_STATIONARY Sin movimiento

Si el dispositivo está quieto, el framework de Android aumenta entre búsquedas de PNO de 60 a 180 segundos para reducir el consumo de energía consumo de energía. Esta optimización se realiza asumiendo que el dispositivo es poco probable que encuentres redes nuevas en las búsquedas de la PNO cuando el dispositivo no está en movimiento.

Si el dispositivo se encuentra en otro estado de movilidad o si no se llama al método, utiliza el comportamiento de análisis de PNO predeterminado.

Implementación

Para implementar esta función de optimización de energía en un dispositivo con Android 10 o superior, derive la información de movilidad del dispositivo y llama al método setDeviceMobilityState() desde una app del sistema personalizada.