Numérisation de déchargement du réseau Wi-Fi préféré

Les analyses de déchargement réseau préféré (PNO) Wi-Fi sont des analyses Wi-Fi de faible puissance qui se produisent à intervalles réguliers lorsqu'un appareil est déconnecté du Wi-Fi et que l'écran est éteint. Les analyses PNO sont utilisées pour rechercher et se connecter aux réseaux enregistrés. Ces analyses sont planifiées par le framework à l'aide de la commande NL80211_CMD_START_SCHED_SCAN . Pour plus d’informations, consultez nl80211.h .

Optimiser la consommation d'énergie grâce aux informations sur la mobilité des appareils

Sur les appareils fonctionnant sous Android 9 ou version antérieure, lorsque l'appareil est déconnecté du Wi-Fi et que l'écran est éteint, les analyses PNO se produisent à des intervalles de 20 secondes pour les trois premières analyses, puis ralentissent à une analyse toutes les 60 secondes pour toutes les analyses suivantes. L'analyse PNO s'arrête lorsqu'un réseau enregistré est trouvé ou que l'écran est allumé.

Android 10 introduit une méthode API facultative nommée setDeviceMobilityState() dans WifiManager qui augmente l'intervalle entre les analyses PNO en fonction de l'état de mobilité de l'appareil afin de réduire la consommation d'énergie.

Les états de mobilité possibles sont :

  • DEVICE_MOBILITY_STATE_UNKNOWN : Mobilité inconnue
  • DEVICE_MOBILITY_STATE_HIGH_MVMT : A vélo ou dans un véhicule automobile
  • DEVICE_MOBILITY_STATE_LOW_MVMT : Marcher ou courir
  • DEVICE_MOBILITY_STATE_STATIONARY : Ne bouge pas

Si l'appareil est stationnaire, le framework Android augmente l'intervalle entre les analyses PNO de 60 secondes à 180 secondes pour réduire la consommation d'énergie. Cette optimisation est basée sur l'hypothèse qu'il est peu probable que l'appareil trouve de nouveaux réseaux dans les analyses PNO lorsque l'appareil ne bouge pas.

Si l’appareil se trouve dans un autre état de mobilité ou si la méthode n’est pas appelée, l’appareil utilise le comportement d’analyse PNO par défaut.

Mise en œuvre

Pour implémenter cette fonctionnalité d'optimisation de l'alimentation sur un appareil exécutant Android 10 ou version ultérieure, dérivez les informations de mobilité de l'appareil et appelez la méthode setDeviceMobilityState() à partir d'une application système personnalisée.