【发布时间】:2018-02-11 15:48:33
【问题描述】:
我想要实现的目标是调用一个方法,该方法使用 wifi 扫描所有连接并将该信息添加到 ArrayList。我已经添加了我之前尝试过的代码,但它没有得到扫描结果。
activity.registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
List<ScanResult> results = wifiManager.getScanResults();
for (int counterWifi = 0; counterWifi < results.size(); counterWifi++){
wifiObjects.add(new WifiObject(results.get(counterWifi).BSSID, results.get(counterWifi).SSID, results.get(counterWifi).capabilities, results.get(counterWifi).frequency, results.get(counterWifi).level));
Log.i("------------", "-----------------");
}
}
}
}, intentFilter);
// start WiFi Scan
wifiManager.startScan();
}
Log.i(TAG, wifiObjects.get(0).bBsid);
更新,它现在得到结果,但不等待添加它们返回。所以 onrecieve 中的 Log.i 显示正在检索的数据,但它返回的数组列表没有新条目。
【问题讨论】:
-
你的 Log.i(TAG, wifiObjects.get(0).bBsid);应该在扫描完成之前执行。因为扫描需要一段时间,并且在扫描完成后,会触发一个异步事件,通知您它已完成。你能看看你的日志并发布你的结果吗?
标签: java android arraylist android-wifi