2016-06-26 73 views
0

我希望能夠檢測附近是否有WIFI點。我使用WifiManager.startScan()方法,我可以使SCAN_RESULTS_AVAILABLE_ACTION意圖失效,並且我可以通過WifiManager.getScanResults()獲得Wifi點結果,但這種情況只發生一次。例如,附近有無線網點A,B,C。我打電話WifiManager.startScan(),我發現無線網點A,B,C。然而,在此之後,如果另一個名爲D的無線網點出現在附近,我看不到它。在這種情況下,我如何捕獲無線網點D?我在下面相關的代碼。我很感謝你的幫助。如何在WifiManager中定期使用StartScan(),以便在可用之後立即捕獲到WIFI點?

tManager.startScan(); 
if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) { 
      Log.i("WiFiDirectBrdcastRcvr", "FOUND WIFI SPOT"); 
      List<ScanResult> wifiScanList = tManager.getScanResults(); 
      wifis = new String[wifiScanList.size()]; 
      Log.i("WiFiDirectBrdcastRcvr", "Device found " + wifiScanList.size()+" WIFI spots"); 
      for(int i = 0; i < wifiScanList.size(); i++){ 
       wifis[i] = ((wifiScanList.get(i)).toString()); 
       Log.i("WiFiDirectBrdcastRcvr", "Spot" + i + " is: " + wifis[i]); 
      } 
     } 

回答

0

把你開始掃描碼在處理

private Handler handler = new Handler() 
{ 
    @Override public void handleMessage(Message message) 
    { 

    } 
}); 
0
Handler h=new Handler(); 
h.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     WifiManager.startScan(); 
    } 
},20000); 
+0

儘管此代碼可以回答這個問題,提供了關於如何和/或其它方面,爲什麼它解決了問題,將改善答案的長長期價值。 –

相關問題