BOOT_COMPLETED not working Android
This below thing worked for me
AndroidManifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application>
<receiver android:name=".BootCompletedReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
<service android:name="NotifyingDailyService" >
</service>
BootCompletedReceiver.class
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1) {
// TODO Auto-generated method stub
Log.w("boot_broadcast_poc", "starting service...");
context.startService(new Intent(context, NotifyingDailyService.class));
}
}
Service.class
public class NotifyingDailyService extends Service {
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent pIntent, int flags, int startId) {
// TODO Auto-generated method stub
Toast.makeText(this, "NotifyingDailyService", Toast.LENGTH_LONG).show();
Log.i("com.example.bootbroadcastpoc","NotifyingDailyService");
return super.onStartCommand(pIntent, flags, startId);
}
}
Android: BroadcastReceiver won't listen to BOOT_COMPLETED
There might be restriction with setting up several intent-filer
action
. So change you defining to the next.
<!-- Don't forget about permission -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<!-- ... -->
<receiver android:name=".helpers.notification.AlarmRebootReceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
For all other intent filters use separate Receiver
. Now you could receive events in the your method. Just print logs, to ensure the even is coming. And few devices to check it's not a device specific.
public class AlarmRebootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context oContext, Intent intent) {
Log.d("", "Event Received");
/**
* .....
**/
}
}
Receiver on BOOT_COMPLETED not fired
I had to go to Settings/ Applications/ MyApp and enable autostart. So it's not a problem with my code. It's a security issue that some phones have like Xiaomi Redmi phones
Android 10 BOOT_COMPLETED Broadcast not received to application
try to add add android:directBootAware
to your <receiver
, as in DOCs
Related Topics
Playing an Arbitrary Tone With Android
Separate Back Stack For Each Tab in Android Using Fragments
How to Get the Absolute Coordinates of a View
Android Get Free Size of Internal/External Memory
How to Implement a Custom Alertdialog View
How to Enable Logcat/Console in Eclipse For Android
Push Notifications in Android Platform
Getcolor(Int Id) Deprecated on Android 6.0 Marshmallow (API 23)
Context.Startforegroundservice() Did Not Then Call Service.Startforeground()
How to Programmatically Tell If a Bluetooth Device Is Connected
How to Hide Soft Keyboard on Android After Clicking Outside Edittext
How to Detect Swipe Direction Between Left/Right and Up/Down
Failed to Load Appcompat Actionbar with Unknown Error in Android Studio