问题 如何以编程方式启用自动启动和浮动窗口权限,如何找到需要自动启动代码的手机?


如何以编程方式启用自动启动权限,请帮助我搜索了很多,如果没有启用我想为设备启用自动启动。我找到的一些解决方案如下

我找到了xiaomi,honor和letv的代码,但我想为联想做同样的事情

if(Build.BRAND.equalsIgnoreCase("xiaomi") ){

                Intent intent = new Intent();
                intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
                startActivity(intent);


            }else if(Build.BRAND.equalsIgnoreCase("Letv")){

                Intent intent = new Intent();
                intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity"));
                startActivity(intent);

            }
            else if(Build.BRAND.equalsIgnoreCase("Honor")){

                Intent intent = new Intent();
                intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
                startActivity(intent);

            }

3931
2018-06-06 07:35


起源

你为什么用性能来标记它? - Andriy Berestovskyy
可能这是不可能的,但必须有一个意图,即在用户可以像在huawei或xiaomi设备中手动打开它的设置中将用户发送到正确的页面。 - RadekJ
我知道但是对于xiaomi,huawei,letv有一个包名可以帮助我们可以实现 - Sagar Hudge
那么oppo设备呢?你对oppo设备有什么解决方案吗? - Shaifali Rajput
我已经解决了使用Job scheduler。一旦我得到任何帮助,我将发布 - Sagar Hudge


答案:


**以下两个解决方案的oppo和vivo可以解决你的问题,这对我有用**

请检查以下解决方案以启用浮动窗口权限   在Oppo设备上

  private void initOPPO() {
    try {

        Intent i = new Intent(Intent.ACTION_MAIN);
        i.setComponent(new ComponentName("com.oppo.safe", "com.oppo.safe.permission.floatwindow.FloatWindowListActivity"));
        startActivity(i);
    } catch (Exception e) {
        e.printStackTrace();
        try {

            Intent intent = new Intent("action.coloros.safecenter.FloatWindowListActivity");
            intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.floatwindow.FloatWindowListActivity"));
            startActivity(intent);
        } catch (Exception ee) {

            ee.printStackTrace();
            try{

                Intent i = new Intent("com.coloros.safecenter");
                i.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.sysfloatwindow.FloatWindowListActivity"));
                startActivity(i);
            }catch (Exception e1){

                e1.printStackTrace();
            }
        }

    }
}

VIVO的自动启动权限

 private static void autoLaunchVivo(Context context) {
    try {
        Intent intent = new Intent();
        intent.setComponent(new ComponentName("com.iqoo.secure",
                "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity"));
        context.startActivity(intent);
    } catch (Exception e) {
        try {
            Intent intent = new Intent();
            intent.setComponent(new ComponentName("com.vivo.permissionmanager",
                    "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
            context.startActivity(intent);
        } catch (Exception ex) {
            try {
                Intent intent = new Intent();
                intent.setClassName("com.iqoo.secure",
                        "com.iqoo.secure.ui.phoneoptimize.BgStartUpManager");
                context.startActivity(intent);
            } catch (Exception exx) {
                ex.printStackTrace();
            }
        }
    }
}

OPPO自动启动

 if (Build.MANUFACTURER.equalsIgnoreCase("oppo")) {
        try {
            Intent intent = new Intent();
            intent.setClassName("com.coloros.safecenter",
                    "com.coloros.safecenter.permission.startup.StartupAppListActivity");
            startActivity(intent);
        } catch (Exception e) {
            try {
                Intent intent = new Intent();
                intent.setClassName("com.oppo.safe",
                        "com.oppo.safe.permission.startup.StartupAppListActivity");
                startActivity(intent);

            } catch (Exception ex) {
                try {
                    Intent intent = new Intent();
                    intent.setClassName("com.coloros.safecenter",
                            "com.coloros.safecenter.startupapp.StartupAppListActivity");
                    startActivity(intent);
                } catch (Exception exx) {

                }
            }
        }

5
2017-11-15 12:48



非常感谢。伟大的它也为我工作。但是如何自动启动应用程序在体内设备而不是浮动窗口权限弹出窗口?我希望像OPPO一样在内部做同样的事情,它想要启用上面提到的OPPO。 - Kums


如果xiaomi OS想要像amazon,google IO等应用程序也不允许自动启动,那么当您从playstore下载应用程序时,自动启动功能将自动启用。在这种情况下,您必须转到安全权限 - >自动启动 - >然后从那里启用自动启动。您无法通过代码使应用程序自动启动您可以执行的是您可以显示一个对话框以启用自动启动并将用户带到自动启动活动但这不是一个好的选项,因为您无法检查自动启动是否是启用与否。

这是由MI在MIUI8中为节省电池完成的。这个问题浪费了我2天的XD

参考

你可以参考这篇文章 MIUI8


5
2018-03-25 07:30



我们不能以编程方式做到啊? - Ranjith Kumar
不,您只能使用您可以执行的所有代码启动自动启动活动 - Rohit Sharma