startScan() in WifiManager 在 Android P 中已弃用

2022-09-01 15:44:54

如何从wifi获取扫描结果,例如每3秒一次,而无需mWifimanager.startScan();

谷歌说:

startScan() This method was deprecated in API level P. The ability for apps to trigger scan requests will be removed in a future release.

请注意,对于此API级别,我正在使用而无需调用,该列表包含wifi AP,但它使更新非常非常慢List<ScanResult> results = mWifiManager.getScanResults();startScan

更新至2019年1月12日:https://issuetracker.google.com/issues/112688545


答案 1

Google现在已经记录了Android P中startScan()功能的限制:

“我们正在进一步限制应用程序可以请求的扫描数量,以提高网络性能并延长电池寿命。

WifiManager.startScan() 的使用限制为: - 每个前台应用程序限制为每 2 分钟扫描 4 次。- 所有后台应用程序组合在一起,限制为每30分钟扫描一次。

资料来源:https://issuetracker.google.com/issues/79906367

编辑8-Aug-2018:信息也已在此处添加:https://developer.android.com/guide/topics/connectivity/wifi-scan#wifi-scan-throttling


答案 2

我认为在API级别P中,他们计划将startScan()移动到另一个类(WifiScanner),并有一些关键差异。

请参见: https://android.googlesource.com/platform/frameworks/base/+/android-p-preview-1/wifi/java/android/net/wifi/WifiScanner.java

如果有其他解决方案,我也很乐意听到。

现在,我可能只使用startScan(),直到官方文档发布。


推荐