2013-08-28 6 views
6

Wenn es zwei WLAN-Netzwerke in Reichweite gibt, die beide die gleiche SSID, den gleichen Sicherheitstyp und das gleiche Passwort haben, gibt es eine verfügbare ID, um zwischen ihnen zu unterscheiden? Gibt es eine Möglichkeit, diese ID in Android zu bekommen?Wie unterscheidet man verschiedene WLAN-Netzwerke?

Antwort

6

Sie können sie durch BSSID unterscheiden - wenn jemand nicht fest MAC Adresse zuweisen werden sie sicher anders (einzigartig) MAC Adressen haben.

Auch sie können auf verschiedenen Kanälen sein. Ich denke, es ist unmöglich, wenn zwei Netzwerke haben SSID, gleichen Kanal und das gleiche BSSID.

+1

also sollte ich nur 'BSSID' oder' BSSID' und 'SSID' und Kanal oder' MAC' überprüfen? welche funktionieren immer richtig? – Soheil

+1

Ich denke, dass Check BSSID genug ist, aber Sie können auch überprüfen, Kanal. – Sajmon

1

Sie könnten versuchen, die MAC-Adresse aus dem sendenden Netzwerk Router/AP zu extrahieren. Diese Adresse wäre einzigartig.

1

Verwenden Sie getSubtype().

Check out Schieber 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

Was wird von 'getSubtype()' zurückgegeben? – Soheil

+1

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

Verwandte Themen