在我的Droid 2上,wifi.getScanResults()似乎在短时间内返回旧值。
这意味着当我在家时,wifi.getScanResults()将显示我的家庭网络。如果我在几英里之外的街道上行驶,wifi.getScanResults()仍然会显示我的家庭网络进行前1或2次尝试。在第三次尝试我的家庭网络已经消失。
问题: 有没有办法只获得最新的wifi.getScanResults()?
可能的选择:
我有一些像这样的代码:
context.registerReceiver(this, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
wifi.startScan();
...
if (intent.getAction().equalsIgnoreCase(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION))
{
List<ScanResult> results = wifi.getScanResults();
}
答案 0 :(得分:3)
我到目前为止找到的解决方案是关闭WiFi,然后重新打开,因为这会导致全新的扫描:
wifi.setWifiEnabled(false);
wifi.setWifiEnabled(true);
添加一点延迟,但有效(在我附近找到很多AP)。
答案 1 :(得分:1)
你确实得到了最后的结果。如果它已过时,您可以start a new scan并设置BroadCastReceiver以获取新列表。