Как программно включить автозапуск и всплывающие окна

Как включить разрешение автоматического запуска программно? Как найти на каком телефоне нужно сделать автозапуск кода? Как проверить Автозапуск разрешения включен или отключен?

Я могу найти только о разрешении всплывающего окна с разрешением canDrawOverlay() ".

помогите, пожалуйста, я много искал, я хочу включить автозапуск для устройства, если оно не включено. Некоторые решения, которые я нашел, как показано ниже


Я нашел код для xiaomi, honor и letv, но хочу то же самое для Lenovo

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);

            }

Ответ 1

** Следующие два решения для 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) {

                }
            }
        }
}

Ответ 2

Функция автозапуска включится автоматически, когда вы загрузите приложение из playstore, если операционная система xiaomi захочет, чтобы приложения, такие как amazon, google IO и т.д., Также не имели права на автозапуск. В этом случае вам нужно перейти в раздел Разрешения безопасности → автозапуск → затем включите автозапуск оттуда. Вы не можете сделать автозапуск приложения по коду, все, что вы можете сделать, это показать диалоговое окно, чтобы включить автозапуск, и перевести пользователя к операции автозапуска, но это не очень хороший вариант, так как вы не можете проверить, работает ли автозапуск. включено или нет.

Это сделано Mi в MIUI8 для экономии батареи. Этот вопрос потрачен впустую мои 2 дня XD

Ссылка

Вы можете обратиться к статье MIUI8