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