拒绝权限 OPPO_COMPONENT_SAFE

11

我的应用程序中有一个需要在OPPO设备后台运行的服务。我在某处读到过,我们需要在设置中启用自动启动以使app的服务保持运行,但我遇到了权限问题。

java.lang.SecurityException:Permission Denial:starting Intent { cmp = com.coloros.safecenter / .startupapp.StartupAppListActivity } from ProcessRecord {904a19d 12604:elite.driver.adsmove.com.settingpermission / u0a214}(pid = 12604,uid = 10214)requires oppo.permission.OPPO_COMPONENT_SAFE

当我尝试这样做时

if (Build.MANUFACTURER.equals("OPPO")) {
    Intent[] AUTO_START_OPPO = {
        new Intent().setComponent(new ComponentName("com.coloros.safe", "com.coloros.safe.permission.startup.StartupAppListActivity")),
        new Intent().setComponent(new ComponentName("com.coloros.safe", "com.coloros.safe.permission.startupapp.StartupAppListActivity")),
        new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.startupapp.StartupAppListActivity")),
        new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.startup.StartupAppListActivity"))
    };

    for (Intent intent : AUTO_START_OPPO) {
        if (getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
            try {
                startActivity(intent);
                break;
            } catch (Exception e) {
                Log.d(TAG, "OPPO - Exception: "+  e.toString());
            }
        }
    }
}

我也尝试添加权限并请求它,但失败了

<!--for OPPO-->
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE" />

期待有经验的人提供帮助,谢谢!


希望你已经在@rameshyogu那里找到了答案。 - Hồ Minh Tùng
到目前为止,我也没有找到任何解决方案...这真的令人担忧。 - Jonathan Liono
1
你找到这个问题的解决方案了吗? - Basil
是的,我找到了它并解决了我的问题! - Hồ Minh Tùng
3
请在此处查看答案:https://github.com/HOMINHTUNG/Permission-Oppo-Android。@savvisingh - Hồ Minh Tùng
显示剩余4条评论
1个回答

1
尝试将以下内容添加为组件名称。
ComponentName("com.coloros.safecenter", "com.coloros.privacypermissionsentry.PermissionTopActivity")

适用于OPPO A3设备


1
这也适用于运行Android 6.0的Oppo A1601。 - Lynch Chen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接