ANDROID STUDIO 开发 APP开机自启动

您所在的位置:网站首页 怎么设置开机软件启动程序权限 ANDROID STUDIO 开发 APP开机自启动

ANDROID STUDIO 开发 APP开机自启动

2024-07-12 15:36| 来源: 网络整理| 查看: 265

最近在做个APP,需要开机自启功能,通过参考网上资料,实现自启功能,在此做一下总结。 实现步骤如下: 1、创建broadcastReceiver广播接收器

在这里插入图片描述

在这里插入图片描述

2、在AndroidManifest.xml中配置权限,配置注册接收器接收的广播消息类型 配置开机启动权限

在这里插入图片描述 创建接收器后,在AndroidManifest.XML中会自动生成标签,在标签中添加过滤器

在这里插入图片描述 在这里加了两个过滤器,因为Android API Level8以上的时候,程序可以安装在SD卡上。如果程序安装在SD卡上,那么在BOOT_COMPLETED广播发送之后,SD卡才会挂载,因此程序无法监听到BOOT_COMPLETED广播。

此时,同时监听开机和sd卡挂载就可以了。

如果BOOT_COMPLETED和MEDIA_MOUNTED,MEDIA_EJECT写在同一个intent-filter中,那么无法检测到BOOT_COMPLETED,对于没有SD卡的手机,只能检测BOOT_COMPLETED,这样就会导致无法检测到开机了。 所以,分别放到了两个intent-filter中。

3、在broadcastReceiver接收器中实现系统启动的代码 package com.example.administrator.mm_scan.reveiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.example.administrator.mm_scan.MainActivity; public class StartReceiver extends BroadcastReceiver { private final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED"; private final String ACTION_MEDIA_MOUNTED = "android.intent.action.MEDIA_MOUNTED"; private final String ACTION_MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED"; private final String ACTION_MEDIA_EJECT = "android.intent.action.MEDIA_EJECT"; private final String ACTION_MEDIA_REMOVED = "android.intent.action.MEDIA_REMOVED"; @Override public void onReceive(Context context, Intent intent) { // 判断是否是系统开启启动的消息,如果是,则启动APP if ( ACTION_BOOT.equals(intent.getAction()) || ACTION_MEDIA_MOUNTED.equals(intent.getAction()) || ACTION_MEDIA_UNMOUNTED.equals(intent.getAction()) || ACTION_MEDIA_EJECT.equals(intent.getAction()) || ACTION_MEDIA_REMOVED.equals(intent.getAction()) ) { Intent intentMainActivity = new Intent(context, MainActivity.class); intentMainActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intentMainActivity); } } }``` 完成以上步骤,就可以开启自启了


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3