Kablosuz tercihli ağ yük taraması taraması

Kablosuz tercih edilen ağdan veri aktarma (PNO) taramaları, bir cihazın kablosuz bağlantısı kesildiğinde ve ekran kapalıyken düzenli aralıklarla gerçekleşen düşük güçlü kablosuz taramalarıdır. PNO taramaları, kayıtlı ağları bulup bağlanmak için kullanılır. Bu taramalar, NL80211_CMD_START_SCHED_SCAN komutu kullanılarak çerçeve tarafından planlanır. Daha fazla bilgi için nl80211.h dosyasını inceleyin.

Cihaz hareketliliği bilgileriyle güç kullanımını optimize etme

Android 9 veya önceki sürümleri çalıştıran cihazlarda, cihazın kablosuz bağlantısı kesildiğinde ve ekran kapalıyken ilk üç taramada 20 saniyelik aralıklarla PNO taramaları gerçekleşir, ardından sonraki tüm taramalar için 60 saniyede bir taramaya kadar yavaşlar. Kayıtlı bir ağ bulunduğunda veya ekran açıldığında PNO taraması durur.

Android 10, WifiManager içinde setDeviceMobilityState() adlı isteğe bağlı bir API yöntemi sunar. Bu yöntem, güç tüketimini azaltmak için PNO taramaları arasındaki aralığı cihazın hareketlilik durumuna göre artırır.

Olası hareketlilik durumları şunlardır:

  • DEVICE_MOBILITY_STATE_UNKNOWN: Bilinmeyen hareket
  • DEVICE_MOBILITY_STATE_HIGH_MVMT: Bisiklette veya motorlu araçta
  • DEVICE_MOBILITY_STATE_LOW_MVMT: Yürüyüş veya koşu
  • DEVICE_MOBILITY_STATE_STATIONARY: Taşınmıyor

Cihaz sabitse Android çerçevesi, güç tüketimini azaltmak için PNO taramaları arasındaki aralığı 60 saniyeden 180 saniyeye çıkarır. Bu optimizasyon, cihaz hareket etmiyorsa PNO taramalarında yeni ağ bulma olasılığının düşük olduğu varsayılarak yapılır.

Cihaz başka bir hareket halinde olma durumundaysa veya yöntem çağrılmazsa cihaz, varsayılan PNO tarama davranışını kullanır.

Uygulama

Android 10 veya sonraki bir sürümü çalıştıran bir cihazda bu güç optimizasyonu özelliğini uygulamak için cihaz hareketlilik bilgilerini türetin ve özel bir sistem uygulamasından setDeviceMobilityState() yöntemini çağırın.