Android 如何在设备完成重新启动过程后启动我的应用程序?

Android 如何在设备完成重新启动过程后启动我的应用程序?,android,android-activity,broadcastreceiver,startup,android-broadcast,Android,Android Activity,Broadcastreceiver,Startup,Android Broadcast,我已经创建了一个应用程序,我想在设备重启后打开它。我正在使用广播接收器,但不工作,我能做什么,有没有其他解决方案 我已经在5.1和10,11上进行了测试 这是我的听筒 package com.activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class StartActivityOnBootReceive

我已经创建了一个应用程序,我想在设备重启后打开它。我正在使用广播接收器,但不工作,我能做什么,有没有其他解决方案

我已经在5.1和10,11上进行了测试

这是我的听筒

package com.activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class StartActivityOnBootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals("android.intent.action.BOOT_COMPLETED")) {
            Intent i = new Intent(context, SplashActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}
这是我的清单

<receiver android:name="com.activity.StartActivityOnBootReceiver"
        android:enabled="true"
        android:exported="true">

        <intent-filter>

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

            <action android:name="android.intent.action.QUICKBOOT_POWERON" />


            <action android:name="android.intent.action.REBOOT"/>

        </intent-filter>
    </receiver>

首先,这一行总是
true

if (Intent.ACTION_BOOT_COMPLETED.equals("android.intent.action.BOOT_COMPLETED"))
应该是

if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()))
进一步为接收者添加适当的权限

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

<receiver
    android:name=".StartActivityOnBootReceiver"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED"

授予此权限后,您的
活动也将在API 29+

上启动,您是否有权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>