今天發現在android2.2時寫的一款程序運行在android4.0上的時候無法接受開機廣播(ACTION_BOOT_COMPLETED)。
后來發現是沒有添加
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
的問題。
在3.1以前,android對自啟動管理不是很嚴格,只要你的BroadcastReceiver的IntentFilter聲明了
<action android:name="android.intent.action.BOOT_COMPLETED" />
就可以接收到開機廣播。但是在android3.1對程序的自啟動進行了規范(官方文檔請點擊此處)。
假如我們沒有指定use-permission就無法收到開機廣播。
如果你也碰到了這個問題,檢查一下自己是不是忘記添加permission了吧^_^
注:如果你接收不到開機事件,在系統log里面會有一個permission denied的異常。