EAK*_*EAM 19 java android kotlin android-9.0-pie
如何从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级别我正在使用
List<ScanResult> results = mWifiManager.getScanResults();而没有调用startScan,该列表包含wifi AP,但它更新非常慢
更新至2019年1月12日:https://issuetracker.google.com/issues/112688545
小智 12
Google现在已经记录了Android P中startScan()函数的限制:
"我们正在进一步限制应用程序可以请求的扫描次数,以提高网络性能并延长电池寿命.
WifiManager.startScan()用法仅限于: - 每个前台应用程序限制为每2分钟扫描4次. - 所有后台应用程序合并为每30分钟一次扫描."
资料来源:https: //issuetracker.google.com/issues/79906367
编辑2018年8月8日:此处还添加了相关信息:https: //developer.android.com/guide/topics/connectivity/wifi-scan
我认为在API级别P他们计划将startScan()移动到不同的类(WifiScanner)以及一些关键差异.
请参阅:https://android.googlesource.com/platform/frameworks/base/+/android-p-preview-1/wifi/java/android/net/wifi/WifiScanner.java
如果有另一种解决方案,我也很乐意听到它.
目前,我可能只使用startScan()直到官方文档发布.
因为我提出谷歌问题79906367,startScan()在P上实际上是非常错误的.
我不认为WifiScanner也是替代品,因为它被标记为SystemApi,这意味着无法访问Apps ...
希望我们很快就能听到,因为RTT仍然意味着你需要使用ScanResult is80211mcResponder扫描支持802.11mc的AP ,你在AP上执行RTT测距之前检查它.