2013-08-06 6 views
5

Devo controllare per ogni rete restituita dal metodo getScanResults() se è già configurata nel dispositivo, ovvero, devo verificare se esiste nell'elenco restituito da getConfiguredNetworks(). Il problema è: come posso fare questo poiché l'unico parametro che hanno in comune è SSID? So che questo non sarebbe il modo migliore per farlo perché potrebbero esserci più reti con lo stesso SSID. Come indicato nel riferimento, networkId è il numero ID che il supplicant utilizza per identificare questa voce di configurazione di rete, ma non riesco a trovare qualcosa di simile per l'oggetto ScanResult.Verificare se la rete ScanResult è già configurata (esiste nell'elenco getConfiguredNetworks())

Quindi, se questo è il mio ricevitore:

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)); 

e questo è come ottengo le reti configurate:

List<WifiConfiguration> list = wifi.getConfiguredNetworks(); 

C'è un modo per verificare se list.get (i) corrisponde al results.get (j) configurazione, per qualunque cosa io o j?

risposta

3

È possibile verificare se i BSSID di entrambe le reti corrispondono. ScanResult e WifiConfiguration forniscono entrambi un BSSID, che è unico per una rete.

+1

Il problema è che i getConfiguredNetworks() restituisce null per bssid – Ben

+0

@ Ben Le uniche volte si otterrà un null per BSSID sono: 1. La wificonfiguration è stato salvato manualmente e il BSSID è stato erroneamente memorizzato 2. La wifimanager è non ancora pronto (questo accade solo raramente e improbabilmente in build non personalizzate. –

+0

+ Sreedevi J Cosa vuoi dire wifimanager non è ancora pronto? Sto ottenendo null da BSSID pure – x0a

Problemi correlati