I am unable to get my BroadcastReceiver onReceive method called using the BOOT_COMPLETED intent.
AndroidManifest.xml
All the applications that receive the BOOT_COMPLETED broadcast must be installed on the internal storage because Android delivers ACTION_BOOT_COMPLETED broadcast before the external storage is mounted to the device.
To ensure that your application will be installed on the internal memory you just need NOT to declare the android:installLocation manifest attribute.
Another option is to set the following in the manifest section: android:installLocation="internalOnly"
You can find more information about it here.