欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

android开机自启动APP及使用adb命令测试方法

时间:2021-04-22 09:08:22|栏目:Android代码|点击:

android开机自动运行APP实现方式其实很简单。在android系统运行时,会发出“android.intent.action.BOOT_COMPLETED”这个系统广播,因此我们监听它,并进行打开APP的操作即可。现在大多数的android手机系统都默认禁止第三方安装的APP开机自启动,只有系统APP(system/app)才默认有这个权限,所以一般都需要去安全中心或者手机管家中去设置为允许。这里说个题外话,手机软件除非特殊情况,不然最好不要做开机自启动,开机自启动一般适用于android系统的终端机上,开机即运行相应的项目,该机器上也只有这个项目,下面上代码。

新建一个类AutoStartBroadcastReceiver集成自BroadcastReceiver:

public class AutoStartBroadcastReceiver extends BroadcastReceiver {

 private static final String ACTION = "android.intent.action.BOOT_COMPLETED";

 @Override
 public void onReceive(Context context, Intent intent) {
  //开机启动
  if (ACTION.equals(intent.getAction())) {
   Intent mainIntent = new Intent(context, MainActivity.class);//MainActivity.calss为你要打开的界面,如果没有界面就可以用service代替
   // 在BroadcastReceiver中显示Activity,必须要设置FLAG_ACTIVITY_NEW_TASK标志
   mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   context.startActivity(mainIntent);
  }
 }
}

在AndroidManifest.xml文件中设置权限和注册广播:

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

 <receiver android:name=".AutoStartBroadcastReceiver" >
   <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <category android:name="android.intent.category.HOME" />
   </intent-filter>
 </receiver>

如此,代码部分就完成,可以进行测试了!我在android7.0的模拟器和Android6.0的真机(魅族)上都测试过,实现的预期的功能。

下面提供两个通过adb发送“BOOT_COMPLETED”系统广播的命令:

1、adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

adb发送系统广播至android设备

2、adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n component

adb发送系统广播至android设备指定的组件中,-n后面接的是你指定项目所需接收广播的类的全路径,而并非大多网上所说的packagename,比如我项目中即为:”com.android.qrcode/.AutoStartBroadcastReceiver”

以上两个命令也都是亲测有效的!

上一篇:Android子线程与更新UI问题的深入讲解

栏    目:Android代码

下一篇:详解Android WebView加载html片段

本文标题:android开机自启动APP及使用adb命令测试方法

本文地址:http://www.codeinn.net/misctech/106223.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有