如何区分不同的wifi网络?

时间:2013-08-28 17:10:48

标签: java android wifi android-networking

如果范围内有两个具有相同SSID,安全类型和密码的wifi网络,是否有可用的ID来区分它们?有没有办法在android中获取该ID?

3 个答案:

答案 0 :(得分:6)

您可以通过BSSID区分它们 - 如果有人不会分配固定的MAC地址,那么肯定会有不同的(唯一的)MAC地址。

他们也可以在不同的频道上。我认为如果两个网络具有相同的SSID,相同的频道和相同的BSSID,则不可能。

答案 1 :(得分:1)

您可以尝试从发送网络路由器/ AP中提取MAC地址。这个地址是独一无二的。

答案 2 :(得分:1)

使用getSubtype()

查看幻灯片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;
}