Boot BroadcastReceiver does not work on Xiaomi devices

I have a following BroadcastReceiver which should run after boot completion. I have tested it on my Xiaomi device (Redmi 1s), it’s not running, while on other devices like Samsung it’s running as expected.

public class DeviceBootReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            Toast.makeText(context, "I am Running", Toast.LENGTH_SHORT).show();

I have set permission in Manifest.

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

And following is my broadcast receiver:

<receiver android:name=".receiver.DeviceBootReceiver">
        <action android:name="android.intent.action.BOOT_COMPLETED"/>

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

I searched around the web and found a solution, I’ve decided to answer my own question. Follow the same code given in the question.

In Xiaomi devices, you just have to add your app to Autostart list, to do so, follow these simple steps given below:

  1. Open Security app on your phone.

  2. Tap on Permissions, it’ll show you two options: Autostart and

  3. Tap on Autostart, it’ll show you list of apps with on or off toggle

  4. Turn on toggle of your app, you’re done!

Now, reboot your phone, you’ll see a Toast message I am Running

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply