在代码中如何判断用户的自启动权限是否开启

在代码中判断用户的自启动权限是否开启,OPPO华为等机型,无法准确判断,求各位打咯啊

public class MobileInfoUtils{
private SettingDialogPermision dialog_per;
//获取手机类型
private static String getMobileType() {
return Build.MANUFACTURER;
}

//跳转至授权页面
public  void jumpStartInterface(Context context) {
    Intent intent = new Intent();
    try {
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Log.e("HLQ_Struggle", "******************当前手机型号为:" + getMobileType());
        ComponentName componentName = null;
        if (getMobileType().equals("Xiaomi")) { // 红米Note4测试通过
            componentName = new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity");

        } else if (getMobileType().equals("Letv")) { // 乐视2测试通过
            intent.setAction("com.letv.android.permissionautoboot");
        } else if (getMobileType().equals("samsung")) { // 三星Note5测试通过
            //componentName = new ComponentName("com.samsung.android.sm_cn", "com.samsung.android.sm.ui.ram.AutoRunActivity");
            //componentName = ComponentName.unflattenFromString("com.samsung.android.sm/.ui.ram.RamActivity");// Permission Denial not exported from uid 1000,不允许被其他程序调用
            componentName = ComponentName.unflattenFromString("com.samsung.android.sm/.app.dashboard.SmartManagerDashBoardActivity");
        } else if (getMobileType().equals("HUAWEI")) { // 华为测试通过
            //componentName = new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity");//锁屏清理
            componentName = ComponentName.unflattenFromString("com.huawei.systemmanager/.startupmgr.ui.StartupNormalAppListActivity");//跳自启动管理
            //SettingOverlayView.show(context);
        } else if (getMobileType().equals("vivo")) { // VIVO测试通过
            componentName = ComponentName.unflattenFromString("com.iqoo.secure/.safeguard.PurviewTabActivity");
        } else if (getMobileType().equals("Meizu")) { //万恶的魅族
            //componentName = ComponentName.unflattenFromString("com.meizu.safe/.permission.PermissionMainActivity");//跳转到手机管家
            componentName = ComponentName.unflattenFromString("com.meizu.safe/.permission.SmartBGActivity");//跳转到后台管理页面
        } else if (getMobileType().equals("OPPO")) { // OPPO R8205测试通过
            componentName = ComponentName.unflattenFromString("com.oppo.safe/.permission.startup.StartupAppListActivity");
        } else if (getMobileType().equals("ulong")) { // 360手机 未测试
            componentName = new ComponentName("com.yulong.android.coolsafe", ".ui.activity.autorun.AutoRunListActivity");
        } else {
            // 将用户引导到系统设置页面
            if (Build.VERSION.SDK_INT >= 9) {
                Log.e("HLQ_Struggle", "APPLICATION_DETAILS_SETTINGS");
                intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
                intent.setData(Uri.fromParts("package", context.getPackageName(), null));
            } else if (Build.VERSION.SDK_INT <= 8) {
                intent.setAction(Intent.ACTION_VIEW);
                intent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
                intent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName());
            }
        }
        intent.setComponent(componentName);
        context.startActivity(intent);
        if (getMobileType().equals("Xiaomi")) {
            showtip();//显示弹窗(**特别注意**)
        }
        if (getMobileType().equals("samsung")){
            new SettingOverlayView().show(context);//显示悬浮窗
        }

    } catch (Exception e) {//抛出异常就直接打开设置页面
        Log.e("HLQ_Struggle", e.getLocalizedMessage());
        intent = new Intent(Settings.ACTION_SETTINGS);
        context.startActivity(intent);
    }
}

//小米手机显示弹窗
private void showtip() {
try {
dialog_per=new SettingDialogPermision(context, R.style.CustomDialog4);
dialog_per.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);//注意这里改成吐司类型
dialog_per.show();
Log.e("HLQ_Struggle","显示弹窗");
} catch (Exception e) {
e.printStackTrace();
Log.e("HLQ_Struggle", "没有显示弹窗"+e.getMessage());
}
}
}

静态注册广播,本地保存标识。主要监听用户开机和关机权限,如果监听到开机权限,本地保存一个标识,证明用户已给定这个权限;而监听到关机的同时将这个标识置为空或者其他一个标识,表明认为用户取消自启动权限。但是有个问题我一直想不明白的是,假如一开始用户设置了自启动,但是通过其他手段又禁止自启动,这时候怎么办?有点恶心。。。