1.开机自启动实现代码
BroadcastReceiver开机自启动实现,MainActivity.class为自启动显示的页面。
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION)) {
Intent service = new Intent(context, MainActivity.class);
service.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(service);
}
}
}
AndroidManifest.xml清单文件添加开机自启动权限。
<!-- 允许开机自启动 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
清单文件中application闭包内添加广播接收。
<!-- 开机自启动广播接受 -->
<receiver
android:name="你的BroadcastReceiver开机自启动实现java文件路径"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
2.自启动失败原因
原因1.APK首次安装没有到过设置开机自启动显示的页面。
原因2.安卓6.0之后开机自启动权限需要在系统权限管理中给你的APP手动开启。
原因3.APP在任务管理中移除了。