开机自启动

来源:互联网 发布:阳光灿烂的日子知乎 编辑:程序博客网 时间:2024/06/04 18:10

app开机自启动

1.开机广播

import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import com.yusong.changzhoumetroline1.utils.ServiceUtils;/**开机广播监听- create by feisher on 2017/4/9- Email:458079442@qq.com  */  public class BootCompleteReceiver extends BroadcastReceiver {  @Override  public void onReceive(Context context, Intent intent) {      if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){          ServiceUtils.RunActivity(context);      }  }  }

2.启动定制的app(工具类中的方法)

/** * 判断应用程序是否是活动的,不是活动的,打开程序 * @param context */public static void RunActivity(Context context) {    ActivityManager am = (ActivityManager) context            .getSystemService(Context.ACTIVITY_SERVICE);  //5.0以下手机可以使用此方法   if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {//小于安卓5.0       List<RunningTaskInfo> list = am.getRunningTasks(100);        for (RunningTaskInfo info : list) {            if (!info.topActivity.getPackageName().equals(context.getPackageName())) {                runApp(context);            }        }   }  //5.0以上手机可以使用此方法,6.0以上权限被禁,暂无办法   if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {            List<ActivityManager.RunningAppProcessInfo> processInfos =      am.getRunningAppProcesses();            boolean isRun = false;            for(ActivityManager.RunningAppProcessInfo processInfo : processInfos) {                if (processInfo.importance ==ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND){                    isRun = processInfo.processName.equals(context.getPackageName());                }            }            if (isRun ==false) {               runApp(context);//启动应用            }        }} private static void runApp(Activity context) {        Intent ootStartIntent = new Intent(context,MainActivity.class);//我们应用的启动页面        ootStartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(ootStartIntent);    }

3.别忘了要配置清单文件

<uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><receiver android:name=".app.BootCompleteReceiver">    <intent-filter android:priority="1000">        <action android:name="android.intent.action.BOOT_COMPLETED" />        <category android:name="android.intent.category.HOME" />    </intent-filter></receiver>
原创粉丝点击