Ich muss für jedes von der getScanResults() -Methode zurückgegebene Netzwerk prüfen, ob es bereits auf dem Gerät konfiguriert ist, das heißt, ob es vorhanden ist in der von getConfiguredNetworks() zurückgegebenen Liste. Das Problem ist: Wie kann ich das tun, da der einzige Parameter, den sie gemeinsam haben, SSID ist? Ich weiß, dass dies nicht der richtige Weg wäre, da es mehr Netzwerke mit derselben SSID geben könnte. Wie in der Referenz angegeben, ist NetworkId die ID-Nummer, die der Supplicant verwendet, um diesen Netzwerkkonfigurationseintrag zu identifizieren, aber ich kann etwas ähnliches für das ScanResult-Objekt nicht finden.Überprüfen Sie, ob das ScanResult-Netzwerk bereits konfiguriert ist (existiert in der getConfiguredNetworks() -Liste)
Also, wenn dies ist mein Empfänger:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
registerReceiver(new BroadcastReceiver()
{
@Override
public void onReceive(Context c, Intent intent)
{
results = wifi.getScanResults();
size = results.size();
}
}, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
und das ist, wie ich die konfigurierten Netzwerken erhalten:
List<WifiConfiguration> list = wifi.getConfiguredNetworks();
Gibt es eine Möglichkeit zu überprüfen, ob list.get (i) entspricht results.get (j) Konfiguration, für was auch immer ich oder j?
Das Problem ist, dass die getConfiguredNetworks() für bssid – Ben
null zurück @ Ben Das einzige Mal, Sie ein Null für BSSID bekommen sind: 1. Die wificonfiguration manuell gespeichert wurde und die bssid falsch 2. Die wifimanager gespeichert wurde, ist noch nicht fertig (das passiert nur selten und unwahrscheinlich in nicht-benutzerdefinierten Builds. –
+ Sreedevi J Was meinst du wifimanager ist noch nicht fertig? Ich bekomme null von BSSID sowie – x0a