Если в диапазоне двух сетей 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; }