Wi-Fi 首選網路卸載掃描

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