Se ci sono due reti wifi nel raggio d'azione che hanno entrambi lo stesso SSID, tipo di sicurezza e password, c'è qualche ID disponibile per distinguerle? C'è un modo per ottenere quell'ID in Android?Come distinguere tra diverse reti wifi?
6
A
risposta
6
È possibile distinguerli attraverso BSSID
- se qualcuno non assegnerà MAC
indirizzo fisso avranno di sicuro diversi (uniche) MAC
indirizzi.
Inoltre possono essere su un altro canale. Penso che sia impossibile se due reti hanno lo stesso SSID
, stesso canale e lo stesso BSSID
.
1
Si potrebbe provare a estrarre l'indirizzo MAC dal router/router di rete di invio. Questo indirizzo sarebbe unico.
1
utilizzare getSubtype().
Partenza slitta 9 here:
ConnectivityManager mConnectivity = null;
TelephonyManager mTelephony = null;
// Skip if no connection, or background data disabled
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
if (info == null || !mConnectivity.getBackgroundDataSetting()) {
return false;
}
// Only update if WiFi or 3G is connected and not roaming
int netType = info.getType();
int netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
return info.isConnected();
} else if (netType == ConnectivityManager.TYPE_MOBILE
&& netSubtype == TelephonyManager.NETWORK_TYPE_UMTS
&& !mTelephony.isNetworkRoaming()) {
return info.isConnected();
} else {
return false;
}
quindi dovrei controllare solo 'BSSID' o' BSSID' e 'SSID' e canale o' MAC'? che funziona sempre correttamente? – Soheil
Penso che il controllo BSSID sia sufficiente ma è comunque possibile controllare anche il canale. – Sajmon