Wi-Fi 偏好網路卸載 (PNO) 掃描是一種低耗電的 Wi-Fi 掃描,裝置與 Wi-Fi 中斷連線且螢幕關閉時,會定期執行這類掃描,用於尋找並連線至已儲存的網路。架構會使用 NL80211_CMD_START_SCHED_SCAN
指令排定這些掃描作業。詳情請參閱 nl80211.h。
根據裝置移動資訊最佳化耗電量
在搭載 Android 9 以下版本的裝置上,如果裝置已中斷 Wi-Fi 連線且螢幕處於關閉狀態,PNO 掃描會在前三次掃描時以 20 秒為間隔,之後則會減緩為每 60 秒掃描一次。找到已儲存的網路或螢幕開啟時,PNO 掃描就會停止。
Android 10 推出名為 setDeviceMobilityState()
的選用 API 方法,位於 WifiManager
中,可根據裝置的行動狀態增加 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()
方法。