2013-04-09 87 views
0

我想執行某些網絡動作時當一個特定的WiFi網絡連接,這必須自動完成,即使從啓動時間沒有用戶輸入。還有一個Preference,告訴我這些操作是否自動執行。監控Android的啓動時間以來的WiFi狀態變化

至於我也明白了,應用程序需要命名爲RECEIVE_BOOT_COMPLETED執行在啓動時某些行爲(包括初始化應用程序本身)的特別許可,和那些在代碼通過BroadcastReceiver實現。

爲了節省電池避免查詢wifi狀態,我可以爲ConnectivityManager.CONNECTIVITY_ACTION註冊一個BroadcastReceiver並查詢它的wifi網絡名稱。

能否CONNECTIVITY_ACTION聽衆,或者隨便什麼其他的聽衆,從AndroidManifest.xml聲明並觸發無需申請啓動,就如啓動接收器沒用?

回答

1

AFAIK,您可以通過清單註冊的接收方回覆CONNECTIVITY_ACTION。有幾個廣播你不能(例如,ACTION_BATTERY_CHANGED)。這將消除您在啓動時需要控制的需求。

你可以enable and disable that receiver based on the preference,所以當你不需要時你不能控制。

+0

但是如何在清單中註冊一個接收器來獲得有關connectivity_action的通知? (如連接變化,如WiFi /網絡可用性) – 2013-04-09 12:49:51

+0

@MehulJoisar:使用'CONNECTIVITY_ACTION',因爲OP和我的答案提到:http://developer.android.com/reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTION – CommonsWare 2013-04-09 12:55:18

+0

是的,我知道,但我無法找到持續的清單意圖,請查看http://www.imagebam.com/image/2c43b5247964554 – 2013-04-09 13:13:27