Android 跳转手机管家的自启动界面

xiaoxiao2021-02-28  120

在开发中遇到这样一个问题,当我们写了开机自启后发现有的手机并不能很顺利的自启动,因为手机管家有最高权限,有个自启动管理,想直接调到这个页面把自己的app的自启动打开就可以,还有oppo,vivo,加入白名单,查了好多资料发现没有直接跳入自启动的界面的Intent, 我想到了可以通过手机的包名类名可以直接跳转,但是手机型号这么多,我怎么知道每个管家的包名类名是个啥,查资料发现 通过这个adb shell dumpsys activity top 命令可以捕捉到当前Activity的类名,手机型号太多,就抓了几个市场常用的手机!

  这样他的类名包名就出来了,我是判断了手机型号,

private void selfStartManagerSettingIntent(Context context) { String mtype = android.os.Build.MODEL; // 手机型号 Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ComponentName componentName = null; if (mtype.startsWith("Redmi")||mtype.startsWith("MI")) { componentName = new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"); } else if (mtype.startsWith("HUAWEI")) { componentName = new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity"); } else if (mtype.startsWith("vivo")) { Log.e(TAG, "selfStartManagerSettingIntent: vivo"); componentName = new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity"); } else if (mtype.startsWith("ZTE")) { // /.autorun.AppAutoRunManager componentName = new ComponentName("com.zte.heartyservice", "com.zte.heartyservice.autorun.AppAutoRunManager"); } else if (mtype.startsWith("F")) { Log.e(TAG, "selfStartManagerSettingIntent: F"); componentName = new ComponentName("com.gionee.softmanager", "com.gionee.softmanager.oneclean.AutoStartMrgActivity"); } else if (mtype.startsWith("oppo")) { componentName = new ComponentName("oppo com.coloros.oppoguardelf", "com.coloros.powermanager.fuelgaue.PowerUsageModelActivity"); } intent.setComponent(componentName); try { context.startActivity(intent); } catch (Exception e) {//抛出异常就直接打开设置页面 // intent = new Intent(Settings.ACTION_SETTINGS); // context.startActivity(intent); } }
转载请注明原文地址: https://www.6miu.com/read-46104.html

最新回复(0)