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

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

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

Sur les appareils équipés d'Android 9 ou version antérieure, est déconnecté du Wi-Fi et que l'écran est éteint, les recherches de l'opérateur de réseau mobile sont lancées au bout de 20 secondes pour les trois premières analyses, puis ralentissez à une analyse toutes les 60 secondes pour toutes les analyses ultérieures. La recherche PNO s'arrête lorsqu'un réseau enregistré est détecté ou l'écran est allumé.

Android 10 introduit une méthode API facultative nommée setDeviceMobilityState() dans WifiManager, qui augmente l'intervalle entre Analyses PNO basées sur l'état de mobilité de l'appareil pour 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: À l'arrêt

Si l'appareil est fixe, le framework Android augmente la valeur un intervalle de 60 à 180 secondes entre les recherches PNO afin de réduire la consommation d'énergie et leur consommation. Cette optimisation repose sur l'hypothèse que l'appareil peu de chances 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, la l'appareil utilise le comportement de recherche PNO par défaut.

Implémentation

Pour implémenter cette fonctionnalité d'optimisation de la consommation d'énergie sur un appareil équipé d'Android 10 ou supérieur, extraire les informations de mobilité de l'appareil et appelez la méthode setDeviceMobilityState() à partir d'une application système personnalisée.