0

我希望能够检测附近是否有 WIFI 点。我使用WifiManager.startScan()方法,我可以使 SCAN_RESULTS_AVAILABLE_ACTION 意图触发,虽然我可以获得 Wifi 点结果WifiManager.getScanResults(),但这只会发生一次。例如,附近有名为 A、B、C 的 wifi 热点。我打电话WifiManager.startScan(),我找到了wifi点A,B,C。但是,在此之后,如果附近出现另一个名为 D 的 wifi 热点,我就看不到它了。在这种情况下,我怎样才能捕捉到 wifi 点 D?我在下面的相关代码。我会很感激你的帮助。

    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]);
            }
        }
4

2 回答 2

0

将您的开始扫描代码放入处理程序

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

   } 
} ); 
于 2016-06-26T05:24:27.147 回答
0
Handler h=new Handler();
h.postDelayed(new Runnable() {
    @Override
    public void run() {
        WifiManager.startScan();  
    }
},20000);
于 2017-02-10T10:36:37.203 回答