某些应用程序缺少自动撤销权限设置面板 (Android 11 API/System)

Auto Revoke Permissions settings panel missing on some apps (Android 11 API/System)

我正在尝试将我的一些企业应用程序列入白名单以避免运行时权限自动重置,因为它们是后台应用程序并且用户不经常与它们交互。

但似乎 (https://issuetracker.google.com/issues/170968725) 一个新的清单属性 “autoRevokePermissions” 不工作(现在或现在,我不知道,因为它在 API lvl 30 上是新的,但它也没有工作并被系统绕过...)。

所以我正在尝试征求用户对此操作的许可,就像这里解释的那样:https://developer.android.com/guide/topics/permissions/overview#auto-reset-permissions-unused-apps

我的问题是,在某些应用程序上,这部分设置完全消失了。 当我进入权限设置时没有开关或信息。 我从 Android Studio 安装它们 我已经更新了所有的targetSdkVersion,配置看起来很相似...

有谁知道我为什么会遇到这个问题?

有没有第三种方法可以关闭这个新设置? 我正在尝试 packageManager.setAutoRevokeWhitelisted 但是 java.lang.SecurityException: Caller must either hold android.permission.WHITELIST_AUTO_REVOKE_PERMISSIONS or be the installer on record ...并且不知道该怎么做)

感谢可能的答案、线索或绕过方法^^

(非常抱歉英语不好;)

请尝试以下步骤:

1.setAutoRevokeWhitelisted:

PackageManager pm = getPackageManager();
pm.setAutoRevokeWhitelisted(getPackageName(), true);
boolean result = pm.isAutoRevokeWhitelisted(); // result should be true

2.in AndroidManifest.xml:

<uses-permission android:name="android.permission.WHITELIST_AUTO_REVOKE_PERMISSIONS" />

3.sign 您的带有平台密钥的应用(参见 example),在 build.gradle 应用中使用:

signingConfigs {
        sign_platform {
            keyPassword 'android'
            storeFile file('platform.keystore')
            storePassword 'android'
            keyAlias 'platform'
        }
}

defaultConfig {
   signingConfig signingConfigs.sign_platform
}

我从 Google 开发团队得到了官方答复:

"某些执行后台服务的应用(包括设备管理应用)禁用了切换 每当切换为 hidden/disabled 时,应用程序已免于自动撤销 "

来源:https://issuetracker.google.com/issues/172325509

我的问题终于自己解决了!