Scans zur Entlastung des Netzwerks (Wi-Fi Preferred Network Offload, PNO) sind WLAN-Scans mit geringer Leistung,
treten in regelmäßigen Abständen auf, wenn ein Gerät vom WLAN getrennt ist und
Display ist aus. PNO-Scans werden verwendet, um
eine Verbindung zu gespeicherten Netzwerken herstellen. Diese Scans werden vom Framework mithilfe der Methode
NL80211_CMD_START_SCHED_SCAN
-Befehl. Weitere Informationen finden Sie unter
nl80211.h:
Stromverbrauch mit Informationen zur Gerätemobilität optimieren
Auf Geräten mit Android 9 oder niedriger, wenn das Gerät keine WLAN-Verbindung hat und das Display ausgeschaltet ist, finden PNO-Scans nach 20 Sekunden statt. Intervalle für die ersten drei Scans und verlangsamen Sie es dann auf einen Scan alle 60 Sekunden. für alle nachfolgenden Scans. Die PNO-Suche wird beendet, wenn ein gespeichertes Netzwerk gefunden wird oder wird der Bildschirm eingeschaltet.
Mit Android 10 wird eine optionale API-Methode namens
setDeviceMobilityState()
in WifiManager
, die das Intervall zwischen
PNO-Scans basierend auf dem Mobilitätsstatus des Geräts, um den Stromverbrauch zu senken.
Mögliche Mobilitätszustände sind:
DEVICE_MOBILITY_STATE_UNKNOWN
: Unbekannte MobilitätDEVICE_MOBILITY_STATE_HIGH_MVMT
: Auf dem Fahrrad oder in einem KraftfahrzeugDEVICE_MOBILITY_STATE_LOW_MVMT
: Gehen oder LaufenDEVICE_MOBILITY_STATE_STATIONARY
: Nicht bewegen
Wenn das Gerät nicht bewegt wird, erhöht das Android-Framework die Intervall zwischen PNO-Scans von 60 bis 180 Sekunden, um den Energieverbrauch zu reduzieren konsumiert wird. Bei dieser Optimierung wird davon ausgegangen, dass das Gerät Es ist unwahrscheinlich, dass neue Netzwerke bei PNO-Scans gefunden werden, wenn das Gerät nicht bewegt wird.
Befindet sich das Gerät in einem anderen Mobilitätszustand oder wird die Methode nicht aufgerufen, verwendet das standardmäßige PNO-Scanverhalten.
Implementierung
Implementierung dieser Funktion zur Energieoptimierung auf einem Android-Gerät
ab 10 Jahren, leiten Sie die Informationen zur Gerätemobilität ab
und die setDeviceMobilityState()
-Methode aus einer benutzerdefinierten System-App aufrufen.