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()
方法。