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?
Il problema è che i getConfiguredNetworks() restituisce null per bssid – Ben
@ 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. –
+ Sreedevi J Cosa vuoi dire wifimanager non è ancora pronto? Sto ottenendo null da BSSID pure – x0a