2013-08-06 2 views
5

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?

Antwort

3

Sie können überprüfen, ob die BSSIDs beider Netzwerke übereinstimmen. ScanResult und WifiConfiguration liefern beide eine BSSID, die für ein Netzwerk einzigartig ist.

+1

Das Problem ist, dass die getConfiguredNetworks() für bssid – Ben

+0

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. –

+0

+ Sreedevi J Was meinst du wifimanager ist noch nicht fertig? Ich bekomme null von BSSID sowie – x0a