0
我遇到了一个问题,当我调用“.getScanResults()”时,返回列表中的对象是相同的。我已经测试过这个并记录了结果来演示。.getScanResults()返回相同的对象
SSID:####,BSSID:C0:C1:C0:AB:42:DC,功能:[WEP] [ESS],电平:-51,频率:2412,时间戳:246825251245
SSID:####,BSSID:C0:C1:C0:AB:42:DC,功能:[WEP] [ESS],电平:-51,频率:2412,时间戳:246825251245
一切都完全一样,包括时间戳。我的代码如下。
public void checkNetwork(View view) {
wifi_manager.startScan();
WifiScanReceiver wifiReciever = new WifiScanReceiver();
registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
}
class WifiScanReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
if (intent.getAction() == WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) {
List<ScanResult> wifi_scan_list = wifi_manager.getScanResults();
int number_of_access_points = wifi_scan_list.size();
for(int i = 0; i < number_of_access_points; i++) {
String data = wifi_scan_list.get(i).toString();
writeToFile(data + System.getProperty("line.separator"));
}
wifi_scan_list.clear();
}
}
}
根据https://stackoverflow.com/questions/8763397/how-to-synchronize-wifimanager-startscan-and-wifimanager-getscanresults,您可能需要考虑将结果存储在“Set”中,以便自动删除重复项为你。 – stkent
@stkent感谢您的回复。我尝试将List更改为Set,但是,该类不允许这样做。铸造也不起作用。有任何想法吗? –
我在下面写了一个更完整的答案;尝试一下,让我知道它是如何去。 – stkent