Android应用实现开机自启动

news/2024/11/17 6:20:20/

如何实现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 {@Overridepublic 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中静态注册广播:

        <receiverandroid: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根标签下)


http://www.ppmy.cn/news/773283.html

相关文章

linux开机自启动方法,Linux配置开机自启动

先了解一下Linux一些脚本启动的顺序 /etc/rc.local -> /etc/profile -> 自定义脚本 通过系统提供的自启动脚本 (这种方式适合添加需要开机自启的应用程序,比如 redis、nginx 等等) Linux 系统提供了一个开机启动的脚本( /etc/rc.local 或 /etc/rc.d/rc.local 这两个文件…

Jetson nano开机自启动程序

目录 前言1.介绍2.创建开机自启动程序2.1 创建一个bash文件2.2 创建一个service文件2.3 添加权限2.4 移动service文件2.5 启动服务2.6 停止/重启服务2.7 取消开机自启动服务 结语参考 前言 最近有个需求&#xff0c;需要在jetson nano开机自启动一个应用程序&#xff0c;最近看…

Linux环境关闭开机自启动服务

查看哪些是开机自启动服务 可以通过 chkconfig 命令查看 [rootlinux30 ~]# chkconfig注&#xff1a;该输出结果只显示 SysV 服务&#xff0c;并不包含 原生 systemd 服务。SysV 配置数据 可能被原生 systemd 配置覆盖。要列出 systemd 服务&#xff0c;请执行 systemctl list…

linux设置开机自启动网络,linux设置开机自启动

一.、在/etc/rc.local文件中添加自启动命令 执行命令: 编辑"/etc/rc.local",添加你想开机运行的命令 运行程序脚本:然后在文件最后一行添加要执行程序的全路径。 例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在"/etc/rc.local"…

多头离子风机的安装方式和特点

多头离子风机是一种能够净化空气并提供良好空气循环的设备。它通过使用离子发生器产生负离子&#xff0c;将空气中的尘埃、细菌、病毒等有害物质带电化&#xff0c;并借助风扇的作用使其悬浮在空气中。这些带电的颗粒会被静电吸引到设备中的吸附板上或者沉降下来&#xff0c;从…

【Web狗自虐系列1】Pwn入门之初级ROP

0x0 栈介绍 栈式一种典型的后进先出的数据结构&#xff0c;其操作主要有压栈(push)与出栈(pop)两种操作 压栈与出栈都是操作的栈顶 高级语言在运行时都会被转换为汇编程序&#xff0c;在汇编程序运行过程中&#xff0c;充分利用了这一数据结构。每个程序在运行时都有虚拟地址…

液晶面板中的OD

OD:OVER DRIVE 过驱动 作用&#xff1a;提升 液晶响应时间&#xff0c;对于从黑到白和白到黑无补偿作用响应时 原理&#xff1a;液晶分子在电场中所产生的力矩与电场的平方成正比&#xff0c;因此&#xff0c;增加电场可以大幅度增加对液晶分子施加的力矩&#xff0c;从而加…

【华为OD机试真题 java、python】硬件产品销售方案(100%通过+复盘思路)

代码请进行一定修改后使用,本代码保证100%通过率,本题提供java、python两种代码。复盘思路在文章的最后 题目描述 某公司目前推出了AI开发者套件,AI加速卡,AI加速模块,Ai服务器,智能边缘多种硬件产品,每种产品包含若干个型号。现某合作厂商要采购金额为amount元的硬件产…