2012-03-12 46 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