Wi-Fi 偏好網路卸載掃描

Wi-Fi 偏好網路卸載 (PNO) 掃描功能是低耗電的 Wi-Fi 掃描功能, 會定期連線,當裝置的 Wi-Fi 連線中斷時, 螢幕已關閉。PNO 掃描會用來尋找 連線至已儲存的網路。這些掃描作業是由架構使用 NL80211_CMD_START_SCHED_SCAN 指令。若需更多資訊,請參閲 nl80211.h

根據裝置行動性資訊,將耗電量最佳化

在搭載 Android 9 以下版本的裝置上,且 已中斷與 Wi-Fi 的連線,且螢幕關閉,正在進行 PNO 掃描作業:20 秒 前三項掃描作業的間隔時間,然後減緩每隔 60 秒掃描一次 定義所有後續掃描作業找到已儲存的網路或找到已儲存的網路時,系統會停止掃描網路訊號 螢幕就會開啟

Android 10 導入了選用 API 方法的 setDeviceMobilityState() WifiManager,這會增加 PNO 功能會根據裝置的行動性狀態掃描以降低耗電量。

可能的移動性狀態如下:

  • DEVICE_MOBILITY_STATE_UNKNOWN: 活動度不明
  • DEVICE_MOBILITY_STATE_HIGH_MVMT: 在腳踏車或汽車上
  • DEVICE_MOBILITY_STATE_LOW_MVMT: 步行或跑步
  • DEVICE_MOBILITY_STATE_STATIONARY: 未偵測到活動

如果裝置處於靜止狀態,Android 架構會增加 從 60 秒到 180 秒掃描 PNO 的時間,藉此減少耗電量 提高用量上限這項最佳化功能是假設裝置 在裝置靜止不動時,可能就無法在 PNO 掃描中找到任何新網路。

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

實作

為了在搭載 Android 的裝置上實作這項省電功能 10 以上,取得裝置行動裝置資訊 再從自訂系統應用程式呼叫 setDeviceMobilityState() 方法。