Я пытаюсь получить SSID сети WIFI, когда мое устройство Android подключено к WIFI.
Я зарегистрировал прослушиватель BroadcastReceiver для android.net.wifi.supplicant.CONNECTION_CHANGE
. Я получаю уведомление, когда WIFI отключен или повторно подключен. К сожалению, я не могу получить SSID сети.
Я использую следующий код для поиска SSID:
WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
Вместо SSID я возвращаю строку <unknown ssid>
.
Это разрешения в манифесте (я добавил ACCESS_NETWORK_STATE, чтобы проверить, я действительно не нуждаюсь в нем)
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Почему это происходит? Как я могу получить фактический SSID? Является ли трансляция раньше, прежде чем соединение будет установлено? Есть ли еще одна трансляция, которую я должен слушать? Меня интересуют только соединения WIFI, а не соединения 3G.
Обновление: я только что проверил, wifiInfo.getBSSID()
возвращает null.