Как различать разные Wi-Fi-сети?

Если в диапазоне двух сетей Wi-Fi есть одинаковый SSID, тип безопасности и пароль, есть ли какой-либо доступный идентификатор, чтобы различать их? Есть ли способ получить этот идентификатор в Android?

Вы можете отличить их через BSSID – если кто-то не будет назначать фиксированный MAC адрес, у них наверняка будут разные (уникальные) MAC адреса.

Также они могут быть на другом канале. Я думаю, что это невозможно, если две сети имеют одинаковый SSID , тот же канал и тот же BSSID .

Вы можете попытаться извлечь MAC-адрес из отправляющих сетей Router / AP. Этот адрес будет уникальным.

Используйте getSubtype () .

Проверьте слайд 9 здесь :

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