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では、結果を「セット」に保存して、重複が自動的に整理されるようにすることを検討してくださいあなたのために。 – stkent
@stkentご回答いただきありがとうございます。私はリストをセットに変更しようとしましたが、クラスはそれを許可しません。キャストは機能しません。何か案は? –
私は以下のより完全な答えを書いた。それを試して、それがどうなるか教えてください。 – stkent