Android应用实现开机自启动

如何实现Android应用开机自启动呢?

实现原理:

Android设备(比如我们的Android手机、Android智能硬件终端......)开机时会发送一条开机广播

:android.intent.action.BOOT_COMPLETED。我们通过监听开机广播来实现。(即:我们写一个广播接收器,接收开机广播,通过Intent跳转应用的入口Activity)

实现步骤:

1、在AndroidManifest.xml中声明权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- 接收Android设备开机时发送的开机广播所需的权限 -->

2、自定义实现 Android应用开机自启动的广播接收器:

public class SelfStartReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //Android设备开机时会发送一条开机广播:"android.intent.action.BOOT_COMPLETED"
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            Intent splashIntent = new Intent(context, SplashActivity.class);
            splashIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(splashIntent);
        }
    }
}

3、在AndroidManifest.xml中静态注册广播:

        <receiver
            android:name=".receiver.SelfStartReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter android:priority="100">
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>

亲测在Android 7.1.2上可用。

注意事项:

1、针对Andorid4.0之后需先启动一次APP才可收到开机完成的广播,主要目的是防止恶意程序。

2、检查一下Android设备上是不是安装了360等安全助手之类的软件,如果有,请在软件的自启动软件管理中将app设置为允许。

3、查看系统设置里是否自带自启动软件管理的功能 ,如有:将app设置为【允许开机启动】。

4、系统开启了Fast Boot模式(通俗讲就是刷机模式 - 线刷模式),这种模式下系统启动并不会发送BOOT_COMPLETED广播。

5、检查手机是否设置了app安装首选位置是sd卡,据说安装到sd卡的话,因为手机启动成功后(发送了启动完成的广播后)才加载sd卡,所以app接收不到广播。如果是的话,把app安装到内部存储试试。如果不懂得设置的话,那么直接在AndroidManifest.xml文件中设置安装路径,android:installLocation="internalOnly"(声明在manifest根标签下)

  • 2
    点赞
  • 13
    收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页
评论 3

打赏作者

zdj_develop

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值