2013-08-28 5 views
6

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?

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

quindi dovrei controllare solo 'BSSID' o' BSSID' e 'SSID' e canale o' MAC'? che funziona sempre correttamente? – Soheil

+1

Penso che il controllo BSSID sia sufficiente ma è comunque possibile controllare anche il canale. – Sajmon

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; 
} 
+0

cosa viene restituito da 'getSubtype()'? – Soheil

+1

http://developer.android.com/reference/android/net/NetworkInfo.html – JNL