Skanowanie w ramach odciążania wybranej sieci Wi-Fi

Skanowanie PNO (Wi-Fi preferred network offload) to skanowanie Wi-Fi o niskim poborze mocy, które odbywa się w regularnych odstępach czasu, gdy urządzenie jest odłączone od Wi-Fi i ekran jest wyłączony. Skanowanie PNO służy do wyszukiwania zapisanych sieci i łączenia się z nimi. Są one planowane przez platformę za pomocą polecenia NL80211_CMD_START_SCHED_SCAN. Więcej informacji znajdziesz w pliku nl80211.h.

Optymalizacja zużycia energii na podstawie informacji o mobilności urządzenia

Na urządzeniach z Androidem 9 lub starszym, gdy urządzenie jest odłączone od Wi-Fi i ekran jest wyłączony, skanowanie PNO odbywa się co 20 sekund przez pierwsze 3 skanowania, a potem zwalnia do 1 skanowania co 60 sekund. Skanowanie PNO zatrzymuje się, gdy zostanie znaleziona zapisana sieć lub ekran zostanie włączony.

Android 10 wprowadza opcjonalną metodę interfejsu API o nazwie setDeviceMobilityState()WifiManager, która zwiększa interwał między skanami PNO na podstawie stanu mobilności urządzenia, aby zmniejszyć zużycie energii.

Możliwe stany mobilności:

  • DEVICE_MOBILITY_STATE_UNKNOWN: Nieznana mobilność
  • DEVICE_MOBILITY_STATE_HIGH_MVMT: na rowerze lub w pojeździe silnikowym;
  • DEVICE_MOBILITY_STATE_LOW_MVMT: chodzenie lub bieganie
  • DEVICE_MOBILITY_STATE_STATIONARY: Nie porusza się

Jeśli urządzenie jest nieruchome, platforma Androida zwiększa interwał między skanami PNO z 60 sekund do 180 sekund, aby zmniejszyć zużycie energii. Optymalizacja ta jest przeprowadzana przy założeniu, że urządzenie nie znajdzie nowych sieci podczas skanowania PNO, gdy się nie porusza.

Jeśli urządzenie jest w innym stanie mobilności lub metoda nie jest wywoływana, urządzenie korzysta z domyślnego skanowania PNO.

Implementacja

Aby wdrożyć tę funkcję optymalizacji zużycia energii na urządzeniu z Androidem 10 lub nowszym, uzyskaj informacje o mobilności urządzenia i wywołaj metodę setDeviceMobilityState() z niestandardowej aplikacji systemowej.