2011-06-16 45 views
3

在我的Droid 2上,wifi.getScanResults()似乎在短時間內返回舊值。Android wifi.getScanResults()的舊結果

這意味着當我在家時,wifi.getScanResults()會顯示我的家庭網絡。如果我在幾英里外的街道上開車,wifi.getScanResults()仍然會顯示我的家庭網絡進行第一次或第二次嘗試。在第三次嘗試我的家庭網絡消失了。

問題: 有沒有辦法只得到最新的wifi.getScanResults()?

可能的選項:

  • 如果ScanResult的.LEVEL是 最低,假設是出於 範圍。
  • 以某種方式使用未公開的API清除ScanResults,

我有一些像這樣的代碼:

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(); 
     } 

回答

3

到目前爲止,我已經找到了解決的辦法是關閉WiFi,然後重新打開它,因爲這會導致一個完全新的掃描:

wifi.setWifiEnabled(false); 
wifi.setWifiEnabled(true); 

增添了幾分延遲,但工程(認定我附近有很多接入點)。