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就能实现开启自启了。

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

(0)

相关推荐

  • Android广播实现App开机自启动

    本文实例为大家分享了Android广播实现App开机自启动的具体代码,供大家参考,具体内容如下 一.概括 在安卓中,想要实现app开机自动启动,需要实现拦截广播android.permission.RECEIVE_BOOT_COMPLETED,并且需要使用静态注册广播的方法(即在AndroidManifest.xml文件中定义广播): 二.步骤 1. 先在AndroidManifest.xml文件中定义广播和声明权限: <uses-permission android:name="andr

  • android开机自启动app示例分享

    复制代码 代码如下: /*开机自动启动APP*/public class BootReceiver extends BroadcastReceiver { @Overridepublic void onReceive(Context context, Intent intent) { Log.d("XRGPS", "BootReceiver.onReceive: " + intent.getAction());if (ACTION_BOOT_COMPLETED.eq

  • Android 代码设置开机自启动App的方法

    有的时候想要用户一旦打开手机.我们的APP就自动运行了. 代码如下: 创建一个监听. /** * create by:sunlei on 2017/7/7 15:48 * e-mail:872822645@qq.com * introduce: */ public class ContentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { I

  • Android实现app开机自启动功能

    本文实例为大家分享了Android实现app开机自启动的具体代码,供大家参考,具体内容如下 最近要做个大屏的开发板程序,需要长期稳定运行,并开机自启运行此软件. 废话不多说,上代码 开机自启需要广播检测,权限 android.permission.RECEIVE_BOOT_COMPLETED 1.AndroidManifest.xml中加入两行代码,红色代码 <?xml version="1.0" encoding="utf-8"?> <manif

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

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

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

    最近在做个APP,需要开启自启功能,通过在网上查找资料,实现了自启功能,非常简单,步骤如下: 1.创建广播接收器broadcastReceiver 2.在AndroidManifest.xml中配置自启权限和注册接收器接收的广播消息类型 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver     android:name=".reveiv

  • Android studio开发小型对话机器人app(实例代码)

    前言 偶然在网上看到一个免费机器人接口,所以生此想法,接口地址:http://api.qingyunke.com/,Android开发比爬虫要繁琐得多,所以本文我将细说接口的调用方法,读者可根据思路去网上找一些免费接口拿来玩,其他代码一带而过,详细源码见文末. 成品展示: 开发步骤 1)新建项目empty,必要可github托管. 2)先写页面在res->layout目录下新建两个layout xml file activity_main作为主页面,msg_item为附在其上的消息页面.(具体代

  • Android编程实现应用程序开机自启动的方法

    本文实例讲述了Android编程实现应用程序开机自启动的方法.分享给大家供大家参考,具体如下: Android在开机时自动启动一个应用程序 在启动时自动启动一个应用程序: 1.AndroidManifest.xml <receiver android:enabled="true" android:name=".BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COM

  • Android Studio开发环境搭建教程详解

    对于移动端这块,笔者之前一直都是进行iOS开发的,也从来没用过Java.但是因为进入了Google Android全国大学生移动互联网创新挑战赛(进入官网)的总决赛(笔者"西部计算机教育提升计划"的项目被直接推荐进入决赛),这个比赛要求一定要提交apk程序,所以我不得不赶紧学习一下Android开发了. 下面就对自己学习的过程做一个记录. 一.安装Android Studio 笔者用的计算机配置如下: Mac下安装Android Studio应该更简单一些,只需要下载一个Android

  • Android Studio下的APP目录结构详解

    Project Name:工程项目名称 Application Name:当前应用发布以后的名字,例如QQ图标下面的名字是"QQ",就是Application Name. Android Studio工程目录 1..gradle和.idea 这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去手动编辑. 2.app 项目中的代码.资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本都是在这个目录下进行的,待会儿还会对这个目录单独展开进行

  • Android Studio开发实现简单计算器功能

    本文实例为大家分享了Android Studio开发实现简单计算器的具体代码,供大家参考,具体内容如下 代码: activity_3.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

  • Android Studio 报错“app:processDebugResources"解决方法

    Android Studio 报错"app:processDebugResources"解决方法 Android Studio项目Build的时候报了这么一个错误: Error:Execution failed for task ':app:processDebugResources'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Pro

  • 使用android studio开发工具编译GBK转换三方库iconv的方法

    网上大多教程和资源并没有从头到尾告诉怎么编译过程,这边文章教你一个对ndk编译懂的不多,又需要使用三方库,怎么办,硬着头皮搞,又无从下手,网上一堆资料,有价值的不多,到处是偏分的.本篇提供真实能运行,带的资源经过测试的.过程如下: 编译ICONV 1.1 解压缩 1.解压缩:  tar -xvf  ./libiconv-1.14.tar.gz  -C libiconv-1.14 2.配置:./configure --host=arm-linux-gnueabihf CC=/home/work/r

随机推荐