我想澄清WifiManager.getScanResults()
的行为,即:
启用无线时
getScanResults()
会继续返回上次扫描结果吗?怎么会知道startScan()
的时间?禁用无线时
getScanResults()
会返回上次扫描结果吗?还是一个空列表?或者null
(它确实有时会返回null,并且这不是由SO中发布的90%的片段处理的)?我问的原因是我需要定期获取可用接入点的列表,我宁愿立即致电getScanResults()
,而不是WifiManager.startScan()
然后getScanResults()
如果我真的不必 - 因为这涉及获取wifi锁等,而且相当微妙。我不确定API级别和手机硬件能发挥多大作用。
有关困难的详细讨论,请参阅此answer
答案 0 :(得分:3)
禁用无线时
getScanResults()
将返回null
... 启用无线时
2.令人惊讶的是getScanResults()
会在一段时间后返回null
(在Nexus One,Android 2.3.7,Cyanogen mod上 - 但我怀疑这不是真的相关)。所以是的,显然无论无线状态如何,都必须启动扫描
如果状态是WIFI_STATE_DISABLING
在无线启用的情况下我仍然感兴趣 - 特别是问题2,如果设备处于睡眠状态。 Google网上论坛不会让我发帖(提示)
答案 1 :(得分:-2)
public List getScanResults()
在 API LEVEL 1
中添加返回最新接入点扫描的结果。
返回
最近扫描中找到的访问点列表。应用必须拥有ACCESS_COARSE_LOCATION
或ACCESS_FINE_LOCATION
权限才能获得有效结果。