2016-06-26 4 views
0

근처에 WIFI 지점이 있는지 여부를 감지하고 싶습니다. 내가 WifiManager.startScan() 방법을 사용하여 SCAN_RESULTS_AVAILABLE_ACTION 인 텐션을 만들 수 있으며, WifiManager.getScanResults()이지만 WiFi 현장 결과를 얻을 수는 있지만 한 번만 발생합니다. 예를 들어 주변에 A, B, C라는 Wi-Fi 지점이 있습니다. 나는 WifiManager.startScan()라고 전화를하고 와이파이 스팟 A, B, C를 찾는다. 그러나이 지점 다음에 근처에 D라는 이름의 또 다른 Wi-Fi 지점이 나타나면 나는 그것을 볼 수 없습니다. 이 경우 Wifi 지점 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

에 시작 스캔 코드를 넣어 그 대답의 장기를 개선하는 것이 문제를 해결하는 이유 용어 값. –