ANDROID STUDIO 开发 APP开机自启动 |
您所在的位置:网站首页 › 怎么设置开机软件启动程序权限 › ANDROID STUDIO 开发 APP开机自启动 |
最近在做个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 |