Below is the code that I use to run the application when the device is turned on.
public class BootReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Log.i("BootReceiver","intent received"); Intent myIntent = new Intent(context, ACT_Home.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(myIntent); } }
and in the manifest (like <Application>
child):
<receiver android:name="host.alarmmanager.BootReceiver"> <intent-filter > <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver>
Permissions within the manifest are as follows:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.VIBRATE" /> <uses-feature android:name="android.hardware.camera"/> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
This works fine on Android 3.2.2, but if I try the same application on Android 4.0.3, the broadcast receiver will not get anything. Also, the first line inside the onReceive
method onReceive
not executed. Why is this happening?
source share