Если есть две сети Wi-Fi в диапазоне, которые имеют одинаковый SSID, тип безопасности и пароль, есть ли какой-либо доступный идентификатор, чтобы различать их? Есть ли способ получить этот идентификатор в андроиде?Как отличить различные Wi-Fi-сети?
6
A
ответ
6
Вы можете отличить их через BSSID
- если кто-то не будет назначать фиксированный MAC
адрес они будут иметь наверняка различных (уникальных) MAC
адресов.
Также они могут быть на другом канале. Я думаю, что это невозможно, если две сети имеют одинаковые SSID
, тот же канал и тот же BSSID
.
1
Вы можете попытаться извлечь MAC-адрес из отправляющих сетей Router/AP. Этот адрес будет уникальным.
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;
}
, поэтому я должен только проверять «BSSID» или «BSSID» и «SSID» и канал или «MAC»? которые всегда работают правильно? – Soheil
Я думаю, что проверить BSSID достаточно, но все же вы также можете проверить канал. – Sajmon