首页 > 解决方案 > 如何通过一个简单的对话框获得自动启动权限(Android)

问题描述

小米、Oppo、Vivo、Honor 等一些品牌不允许应用程序在后台运行服务/广播接收器等,除非我们通过提供“自动启动”权限等操作将应用程序列入白名单。为了让用户授予应用程序自动启动权限,我的应用程序将用户带到设置屏幕,他们可以在其中为应用程序启用自动启动。我认为这样做可能会让用户对我的应用产生怀疑,或者他们可能会感到害怕。有没有办法通过对话框获得自动启动权限,或者除了获得自动启动权限之外,还有其他方法可以将应用程序列入白名单吗?

现在我正在使用这段代码:

 if (Build.BRAND.equalsIgnoreCase("xiaomi")) {
            Intent intent = new Intent();
            intent.setComponent(new

                    ComponentName("com.miui.securitycenter",
                    "com.miui.permcenter.autostart.AutoStartManagementActivity"));
            intent.setData(Uri.parse("package:" + getPackageName()));

            startActivity(intent);
        } else 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) {

                    }
                }
            }
        }

但它会将用户带到“设置”中的“自动启动”屏幕,这是我不想要的。

请建议一种通过对话框获得自动启动权限的方法,或通过简单对话框将应用程序列入白名单的其他方法。

标签: androidwhitelistautostart

解决方案


推荐阅读