android studio开发实现APP开机自启动

 更新时间:2022年05月17日 08:39:19   作者:呜呜渣渣的猿  
这篇文章主要为大家详细介绍了android studio开发实现APP开机自启动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近在做个APP,需要开启自启功能,通过在网上查找资料,实现了自启功能,非常简单,步骤如下:

1、创建广播接收器broadcastReceiver

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

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

<receiver
    android:name=".reveiver.StartReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_MOUNTED"/>
        <action android:name="android.intent.action.MEDIA_UNMOUNTED"/>
        <action android:name="android.intent.action.MEDIA_EJECT"/>
        <action android:name="android.intent.action.MEDIA_REMOVED"/>
        <data android:scheme="file" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

因为Android API Level8以上的时候,程序可以安装在SD卡上。如果程序安装在SD卡上,那么在BOOT_COMPLETED广播发送之后,SD卡才会挂载,因此程序无法监听到BOOT_COMPLETED广播。

如果BOOT_COMPLETED和MEDIA_MOUNTED,MEDIA_EJECT写在同一个intent-filter中,那么无法检测到BOOT_COMPLETED,对于没有SD卡的手机,只能检测BOOT_COMPLETED,这样就会导致无法检测到开机了。要解决此问题,同时监听开机和sd卡挂载就可以了,所以要分别放到了两个intent-filter中。

3.在第1步创建的广播接收器中实现自启动代码

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);
        }
    }
}

完成以上步骤,APP就能实现开启自启了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android框架Volley使用之Post请求实现方法

    Android框架Volley使用之Post请求实现方法

    这篇文章主要介绍了Android框架Volley使用之Post请求实现方法,,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • android实现动态显隐进度条

    android实现动态显隐进度条

    这篇文章主要为大家详细介绍了android实现动态显隐进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Android 仿高德地图可拉伸的BottomSheet的示例代码

    Android 仿高德地图可拉伸的BottomSheet的示例代码

    这篇文章主要介绍了Android 仿高德地图可拉伸的BottomSheet的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • android12 SD如何动态申请读写权限

    android12 SD如何动态申请读写权限

    这篇文章主要给大家介绍了关于android12 SD如何动态申请读写权限的相关资料,从Android 6.0开始,权限不再是在manifest⽂件中粘贴⼀下即可,这时候权限也正式⾛进⼤家的视野,需要的朋友可以参考下
    2023-07-07
  • Android FlowLayout流式布局实现详解

    Android FlowLayout流式布局实现详解

    这篇文章主要为大家详细介绍了Android FlowLayout流式布局的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • Android studio配置国内镜像源的实现

    Android studio配置国内镜像源的实现

    这篇文章主要介绍了Android studio配置国内镜像源的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Android BadgeView红点更新信息提示示例代码

    Android BadgeView红点更新信息提示示例代码

    本篇文章主要介绍了Android BadgeView红点更新信息提示示例代码,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Android DataBinding单向数据绑定深入探究

    Android DataBinding单向数据绑定深入探究

    看了谷歌官方文章确实写的太简略了,甚至看完之后有很多地方还不知道怎么回事儿或者怎么用,那么接下来我将通过文章全面介绍一下DataBinding单向数据绑定
    2022-11-11
  • android平台HttpGet、HttpPost请求实例

    android平台HttpGet、HttpPost请求实例

    出自网络搜索引擎巨头的Android平台,其对网络的支持自然不用多说,在Android SDK中已经集成了Apache的HttpClient模块。使用HttpClient模块,我们就可以使用HTTP协议进行网络连接了
    2014-05-05
  • Android Compose实现底部按钮以及首页内容详细过程

    Android Compose实现底部按钮以及首页内容详细过程

    这篇文章主要介绍了如何利用compose框架制作app底部按钮以及首页内容的详细代码,具有一定价值,感兴趣的可以了解一下
    2021-11-11

最新评论