Obter SSID quando o Wi-Fi estiver conectado

Estou tentando obter o SSID da rede Wi-Fi quando meu dispositivo Android está conectado ao Wi-Fi.

Registrei um BroadcastReceiver ouvindoandroid.net.wifi.supplicant.CONNECTION_CHANGE . Recebo a notificação quando o WIFI é desconectado ou reconectado. Infelizmente, não consigo obter o SSID da rede.

Estou usando o seguinte código para encontrar o SSID:

WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();

Em vez do SSID, eu recebo a string<unknown ssid> de volta.

Essas são as permissões no manifesto (adicionei ACCESS_NETWORK_STATE apenas para verificar, na verdade não preciso disso)

<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"/>

Por que isso acontece? Como posso obter o SSID real? A transmissão é disparada cedo, antes da conexão ser estabelecida? Existe outra transmissão que eu deveria ouvir? Estou interessado apenas em conexões Wi-Fi, não em conexões 3G.

Atualização: Acabei de verificar,wifiInfo.getBSSID() retorna nulo.

questionAnswers(8)

yourAnswerToTheQuestion