2012-03-12 59 views
3

我有注册广播接收者SUPPLICANT_STATE_CHANGED_ACTION我在哪里观看wifi supplicant状态变化。如何从请求者状态改变广播接收器获取wifi接入点的SSID

当wifi supplication状态连接或断开,那么我想向用户显示Toast消息,表示您已连接/断开与此SSID。

我不知道从SUPPLICANT_STATE_CHANGED_ACTION广播接收机我们如何检索事件发生或广播已收到的SSID。

谢谢。

回答

0

尝试使用NETWORK_STATE_CHANGED_ACTION

表明Wi-Fi连接的状态已经改变广播意图的行动。一个额外的提供了一个NetworkInfo对象形式的新状态。如果新状态为“连接”,则额外的额外资源可以提供接入点的BSSID和WifiInfo。作为一个字符串。

+1

但万一如果无线网络连接断开,我需要显示消息说无线'SSID'已断开连接。此广播仅在连接状态的情况下提供与WiFi接入点有关的信息。我需要连接和断开状态下的ssid。 – User7723337 2012-03-12 10:27:02

1

尝试使用WifiManager获取SSID。

WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
String ssid = wm.getConnectionInfo().getSSID(); 

此外,您还需要将SSID保存到您的首选项中,以便在接收“断开连接”广播时显示它。将SSID存储在一个变量中将是不安全的,因为它可以随时被垃圾回收器删除。

+0

当垃圾收集器不再能被运行代码访问时,它不仅会被垃圾收集器删除,在这种情况下不再需要它吗? – Ren 2013-03-13 15:40:45

+0

这取决于您如何注册您的广播接收器。如果你在清单中注册它,当gc释放内存时,接收器也将工作。在这种情况下,您需要使用首选项。如果您在运行时注册接收器,则可以将SSID存储在变量中。 – vyndor 2013-03-13 16:26:34