开机自启动

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值