#android #wifi #uniqueidentifier #access-point
#Android #wi-Fi #уникальный идентификатор #точка доступа
Вопрос:
Проблема заключается в следующем — существует Wi-Fi-соединение по всему университетскому городку с одним SSID, скажем, «campus-wifi». Пользователь свободно перемещается по кампусу, и происходит обычная передача данных между точками доступа. Мой вопрос в том, есть ли какая-либо информация на любом уровне сетевого стека, которая позволяет клиенту идентифицировать (подойдет любой уникальный идентификатор) конкретную точку доступа, к которой они подключены, а не просто тот факт, что они подключены к «campus-wifi»?
Если это актуально, я хотел бы иметь возможность делать это с мобильных устройств (в первую очередь Android / iOS).
Ответ №1:
Вы можете получить BSSID точки доступа, к которой вы подключены. Что-то вроде:
WifiMana&er wifi = (WifiMana&er) &etSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.&etConnectionInfo();
Strin& BSSID = info.&etBSSID();
Не на 100% то, что вы получите обратно с BSSID, поскольку я никогда им не пользовался — но он должен однозначно идентифицировать базовую станцию — Википедия, кажется, указывает, что вы получите MAC точки доступа (внизу):
http://en.wikipedia.or&/wiki/Service_set_ (802.11_network)#Basic_service_set_identifier_.28BSSID.29
— Dan
Редактировать:
Согласно документам Android, это MAC-адрес:
http://developer.android.com/reference/android/net/wifi/WifiInfo.html
Комментарии:
1. Не забудьте добавить разрешение для ACCESS_WIFI_STATE в свой Android-манифест.