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?
6
A
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
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;
}
also sollte ich nur 'BSSID' oder' BSSID' und 'SSID' und Kanal oder' MAC' überprüfen? welche funktionieren immer richtig? – Soheil
Ich denke, dass Check BSSID genug ist, aber Sie können auch überprüfen, Kanal. – Sajmon