当我的安卓设备连接到WIFI时,我想获得WIFI网络的SSID。
我已经注册了一个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>
而不是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。
getSSID()
接收到null
,因此我认为这不是连接问题。只是想知道,您测试的网络的SSID是什么? - Ben Siver