在基于Android的硬件设备中,如何让应用随系统开机而自启?

2026/04/09Android 67 阅读

首先在 AndroidManifest.xml 文件中注册接收系统开机广播消息的广播接收者

<application ...>
        <activity />
        <!-- 注册接收系统开机广播消息的广播接收者 -->
        <receiver
            android:name=".BootBroadcastReveiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>
</application>

这里只列出了相关的主要代码

创建广播类 BootBroadcastReveiver

package com.xxx.app;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

import android.util.Log;

public class BootBroadcastReveiver extends BroadcastReceiver {
    private final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";
    @Override
    public void onReceive(Context context, Intent intent) {
        try{
            /**
             * 如果 系统开机启动,则启动指定包名的应用
             */
            if (ACTION_BOOT.equals(intent.getAction())) {
                String packageName = "com.xxx.app";
                Intent pkgIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);
                context.startActivity(pkgIntent);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}