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

Les analyses de transfert de réseau Wi-Fi préféré (PNO) sont des analyses Wi-Fi à faible consommation d'énergie qui se produisent à intervalles réguliers lorsqu'un appareil est déconnecté du Wi-Fi et que l'écran est éteint. Les analyses PNO permettent de trouver et de 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 en savoir plus, consultez nl80211.h.

Optimiser la consommation d'énergie grâce aux informations sur la mobilité de l'appareil

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

Android 10 introduit une méthode d'API facultative appelé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 les suivants:

  • DEVICE_MOBILITY_STATE_UNKNOWN : mobilité inconnue
  • DEVICE_MOBILITY_STATE_HIGH_MVMT : À vélo ou à moteur
  • DEVICE_MOBILITY_STATE_LOW_MVMT : marcher ou courir
  • DEVICE_MOBILITY_STATE_STATIONARY : pas de mouvement

Si l'appareil est à l'arrêt, le framework Android augmente l'intervalle entre les analyses PNO de 60 secondes à 180 secondes pour réduire la consommation d'énergie. Cette optimisation repose sur l'hypothèse que l'appareil est peu susceptible de trouver de nouveaux réseaux lors des recherches PNO lorsque l'appareil est immobile.

Si l'appareil est dans un autre état de mobilité ou si la méthode n'est pas appelée, il utilise le comportement de numérisation PNO par défaut.

Implémentation

Pour implémenter cette fonctionnalité d'optimisation de l'alimentation sur un appareil équipé d'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.