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

作者:总有刁民想爱朕 时间:2022-03-07 06:28:54 

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开机自启动APP及使用adb命令测试方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://blog.csdn.net/MyName_kk/article/details/77772741

标签:android,自启动,APP,adb
0
投稿

猜你喜欢

  • Java轻松掌握面向对象的三大特性封装与继承和多态

    2021-07-27 02:39:11
  • Java 客户端操作 FastDFS 实现文件上传下载替换删除功能

    2022-06-01 15:01:38
  • unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)

    2022-11-09 16:18:56
  • 解决C#中Linq GroupBy 和OrderBy失效的方法

    2022-11-21 00:25:11
  • 关于eclipse安装spring插件报错An error occurred while collecting items to be installed...解决方案

    2023-05-27 03:34:45
  • Android中Activity之间跳转和参数传递的实例

    2023-01-31 21:40:32
  • 深入了解java内存分配和回收策略

    2023-02-27 15:16:58
  • kafka并发写大消息异常TimeoutException排查记录

    2023-11-27 23:07:11
  • java实现最短路径算法之Dijkstra算法

    2021-12-28 12:26:06
  • 基于java中的流程控制语句总结(必看篇)

    2023-11-08 09:56:59
  • java编程小白进阶包的作用详解

    2022-01-22 05:15:24
  • Mybatis映射文件实例详解

    2023-06-12 13:08:42
  • Mybatis初始化知识小结

    2023-11-01 13:59:27
  • Springboot创建子父工程过程图解

    2022-09-20 06:06:26
  • C# WPF后台动态添加控件实战教程

    2022-07-29 18:52:51
  • vs2019永久配置opencv开发环境的方法步骤

    2023-11-02 19:38:58
  • Unity3D更改默认的脚本编辑器

    2021-06-05 14:58:53
  • 流式图表拒绝增删改查之kafka核心消费逻辑上篇

    2023-04-19 03:32:11
  • Android 5.0+ 屏幕录制实现的示例代码

    2023-11-19 13:02:30
  • 如何使用JCTools实现Java并发程序

    2023-11-21 07:37:39
  • asp之家 软件编程 m.aspxhome.com