I have created an application that receives BOOT_COMPLETED within a receiver using the following filter:
Some devices after Android 3.1 will not give the app control after the BOOT_COMPLETED receiver.
Google has long said that users should launch an activity from the launcher first, before that application can go do much. Preventing BOOT_COMPLETED from being delivered until the first activity is launched is a logical extension of the same argument.
I do not know which devices it makes a difference on though.
Make sure that you are doing a real full reboot.
Some HTC devices, for example, have a "fast boot" mode that does not trigger BOOT_COMPLETED
, but instead sends an android.intent.action.QUICKBOOT_POWERON
broadcast. As I understand it, the "fast boot" mode basically does a hibernate, instead of a true power down, and so they don't send BOOT_COMPLETED
as a result.
(why the Intent
action isn't com.htc.action.QUICKBOOT_POWERON
is a whole `nuther issue...)