Android应用程序开机开机启动

  有很过情况都需要Android程序开机自启,也就是在手机开机之后马上执行相应的Android程序。

  实现的方法就是,在手机开机的时候接受相应的广播,在Android程序中接受相应的广播。

  第1步:建立自定义的BroadcastReceiver类。

 1 package com.example.autostart;
 2 
 3 import android.content.BroadcastReceiver;
 4 import android.content.Context;
 5 import android.content.Intent;
 6 import android.widget.Toast;
 7 
 8 public class BootupReceiver extends BroadcastReceiver {
 9 
10     @Override
11     public void onReceive(Context context, Intent intent) {
12         Toast.makeText(context, "App started", Toast.LENGTH_LONG).show();
13         // ---start the main activity of our app---
14         
15         Intent i = new Intent(context, MainActivity.class);
16         i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
17         context.startActivity(i);
18     }
19 }

  第2步:修改AndroidManifest.xml文件。

  添加收取到开机广播的权限。

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

  注册自定义的BroadcastReceiver类。

1 <receiver android:name=".BootupReceiver" >
2   <intent-filter>
3     <action android:name="android.intent.action.BOOT_COMPLETED" />
4 
5     <category android:name="android.intent.category.DEFAULT" />
6   </intent-filter>
7 </receiver>

  这样就基本完成了,我在电脑的AVD上实验也成功了。但在我手机上开机没有效果,我在手机管家中也设置了相应的权限,但就是不成功。在我把手机上安全软件卸载后,程序自启动成功了,我分析是安装的手机管家在接受开机广播后,就广播结束了。

原文地址:https://www.cnblogs.com/finlay/p/3878493.html