Search code examples
androidandroid-broadcastandroid-reboot

BOOT_COMPLETED is not getting called in device


i want to start an alram when the device gets boot, for that i have done following stuff

1) User permission

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

2) add receiver with intent action in manifest file

 <receiver
            android:name=".sms.BootReceiver"
            android:enabled="true" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" >
                </action>

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

3) source

public class BootReceiver extends BroadcastReceiver {

    private AlarmManager dayAlarmMgr;
    private PendingIntent dayAlarmIntent;
    private NotificationManager mNotificationManager;
    private NotificationCompat.Builder builder;
    private Context context;
    public static final int NOTIFICATION_ID = 2;

    @Override
    public void onReceive(Context context, Intent intent) {

         if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
                    Toast.makeText(context, "FIRED BOOT COMPLETE" , Toast.LENGTH_LONG).show();
           }
    }
}

above code is working in genymotion but not on a real device


Solution

  • thanks for helping out but finally i was able to make it work android.intent.action.BOOT_COMPLETED by setting android:installLocation="internalOnly" as boot complete fires for application those are stored in internal memory.