Wi-Fi 首選網絡卸載掃描

Wi-Fi 首選網路卸載 (PNO) 掃描是低功耗 Wi-Fi 掃描,當裝置與 Wi-Fi 斷開連線且螢幕關閉時,會定期進行掃描。 PNO 掃描用於尋找並連接到已儲存的網路。這些掃描由框架使用NL80211_CMD_START_SCHED_SCAN命令進行調度。有關更多信息,請參閱nl80211.h

利用設備行動資訊優化電源使用

在執行Android 9 或更低版本的裝置上,當裝置與Wi-Fi 斷開連線且螢幕關閉時,前3 次掃描會以20 秒的間隔進行PNO 掃描,然後在所有後續掃描中減慢至每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()方法。