Android APP实现开机自启动(亲测可用)

工作环境(蓝色粗体字为特别注意内容)
1,系统环境:Win7 Ultimate sp1、Android Studio 3.2、gradle 4.6
Step1:编写Receiver,名字随便取

package com.xxx.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

import com.xxx.AppConf;
import com.xxx.MainActivity;
import com.xxx.Logger;
/**
 * @Description: 接收开机广播,开机自动进入app
 * @Package    : com.xxxxx.receiver
 * @ClassName  : BootReceiver
 * @Author     : Pang
 * @Version    : V1.0
 * @Time       : 2019/10/8 14:26
 */
public class BootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 设备一开机就自动启动应用
        if(!AppConf.BOOT_AUTO_ENABLE){
           log("Boot action received, but auto boot disable and discard.");
           return;
        }
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            Intent it = new Intent(context, MainActivity.class);
            it.setAction("android.intent.action.MAIN");
            it.addCategory("android.intent.category.LAUNCHER");
            it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(it);
            log("Boot 开机自动启动");
        } else {
            log("Boot 非开机自动启动");
        }
    }

    private void log(String s) {
        Logger.e(this, s);
    }

}

Step2:配置AndroidManifest.xml


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


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

发布了290 篇原创文章 · 获赞 163 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/pang9998/article/details/102390265