本社群由Nantou.py使用者社群以及國立虎尾科技大學電機資訊學院負責維護,它是一群熱愛智慧生活科技以及Python的專業教師所組成,大家一同快樂地研究有關數位生活中人工智慧、大數據、物聯網、雲端服務、APPS、福祉科技、感知網路服務、車載網路服務、及網際網路等資通訊技術,並運用這些資通訊以及Python技術來提升我們的日常生活品質,建立更好的生活環境。
2012年8月3日 星期五
讓Android在開機完成時自動啟動程式/服務
在我們所熟悉的Win XP/7 如果要在開機完成後自動執行程式,最簡單的方法就是將程式的圖示放置在"啟動"中,Android則沒有設計類似這樣的功能,如何可以可以在開機後自動執行程式或服務呢?
原理是這樣的;在Android開機完成後,系統會送出一個Broadcast資訊說"系統已經開機完成了" (android.intent.action.BOOT_COMPLETED),而且這個Action只會發送一次。
透過這樣的方式,寫出一個BroadcastReceiver來監聽這個資訊便可以達到自動啟動程式的目的了。
以下是執行程式碼:
MainActivity.java
MyIntentReceiver.java
AndroidManifest.xml
這邊要注意的地方是標示1的權限部分以及標示2的宣告部分。
其他部分則使用預設的程式碼,執行結果如下:
如果是在模擬器上執行的話,將程式關閉後可以使用下面的adb指令產生一個android.intent.action.BOOT_COMPLETED,這時候就會出現執行結果。
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
最後如果大家好奇的問,透過android.intent.action.BOOT_COMPLETED所帶出來的服務應該是不會有啥問題,但如果是Activity呢? 這部分我試了一下還蠻有趣的結果部分.....就留待給各位測試測試囉!!
參考:
1.Android Developers, Intent (ACTION_BOOT_COMPLETED)
http://developer.android.com/intl/zh-CN/reference/android/content/Intent.html#ACTION_BOOT_COMPLETED
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言