2011-05-04 82 views
1

我正在做一個應用程序,需要對設備連接到WiFi網絡時作出反應,我目前正在嘗試使用BroadcastReceiver實現它來監視android.net.ConnectivityManager.CONNECTIVITY_ACTION - 這種方式是正確的,還是有一種更合適的方式?這是檢測與WiFi網絡連接的正確方法嗎?

回答

1

@Jase,您需要註冊接收WifiManager.NETWORK_STATE_CHANGED_ACTION。意圖有一個額外的NetworkInfo。檢查它找到它的狀態。如果狀態爲NetworkInfo.State.CONNECTED,則表示您已連接到網絡。

有關實現此目的的示例代碼,請看here

0

看看WifiManager.WIFI_STATE_CHANGED_ACTION

廣播意圖的行動表明 是Wi-Fi已經被啓用,禁用 啓用,禁用,還是個未知數。一個 extra將此狀態提供爲int。 如果可用,另一個額外提供前一個 狀態。

WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION

廣播指示 ,爲請求者 的連接已經建立(和現在 可以執行Wi-Fi業務) 或請求者的連接意圖動作 已經丟失。一個額外的提供 連接狀態作爲布爾值,其中 真正意味着連接。

閱讀從廣播或你什麼時候得到任何他們喜歡的檢查:

WifiManager wifi=(WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
int state=wifi.getWifiState(); 

現在可以檢查狀態,這將是一個

  • WIFI_STATE_DISABLED
  • WIFI_STATE_DISABLING
  • WIFI_S TATE_ENABLED < - 有了這個,你可以發送/接收數據
  • WIFI_STATE_ENABLING
  • WIFI_STATE_UNKNOWN
相關問題