工作环境(蓝色粗体字为特别注意内容)
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" />