Wi-Fi 偏好網路卸載掃描

Wi-Fi 偏好網路卸載 (PNO) 掃描是低耗電量的 Wi-Fi 掃描,會在裝置與 Wi-Fi 連線中斷且螢幕關閉時,以規律的間隔執行。PNO 掃描可用於尋找並連線至已儲存的網路。這些掃描作業會由架構使用 NL80211_CMD_START_SCHED_SCAN 指令排程。詳情請參閱 nl80211.h

運用裝置移動資訊最佳化耗電量

在搭載 Android 9 以下版本的裝置上,如果裝置已與 Wi-Fi 斷線且螢幕關閉,PNO 掃描會以 20 秒的間隔執行前三次掃描,然後放慢至每 60 秒執行一次掃描,直到所有後續掃描作業結束為止。找到已儲存的網路或螢幕開啟時,PNO 掃描作業就會停止。

Android 10 在 WifiManager 中導入了名為 setDeviceMobilityState() 的選用 API 方法,可根據裝置的行動性狀態增加 PNO 掃描的間隔時間,藉此減少耗電量。

可能的移動狀態如下:

  • DEVICE_MOBILITY_STATE_UNKNOWN:不明的移動性
  • DEVICE_MOBILITY_STATE_HIGH_MVMT: 騎單車或駕駛汽車
  • DEVICE_MOBILITY_STATE_LOW_MVMT:步行或跑步
  • DEVICE_MOBILITY_STATE_STATIONARY:未移動

如果裝置靜止不動,Android 架構會將 PNO 掃描之間的間隔時間從 60 秒增加到 180 秒,以減少耗電量。這項最佳化作業假設裝置在靜止時,不太可能在 PNO 掃描中找到任何新的網路。

如果裝置處於任何其他行動狀態,或未呼叫方法,則裝置會使用預設的 PNO 掃描行為。

實作

如要在搭載 Android 10 以上版本的裝置上實作這項省電功能,請擷取裝置行動性資訊,並從自訂系統應用程式呼叫 setDeviceMobilityState() 方法。