#android #kotlin #permissions #android-manifest #android-permissions
#Android #kotlin #разрешения #android-манифест #android-разрешения
Вопрос:
Я пытаюсь внести в белый список некоторые из моих корпоративных приложений, чтобы избежать автоматического сброса разрешений во время выполнения, поскольку они являются фоновыми приложениями, и пользователи не очень часто взаимодействуют с ними.
Но кажется (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. Я столкнулся с той же проблемой. Кто-нибудь знает, почему? Может ли это противоречить другому разрешению или sth?
2. Официальный ответ от команды разработчиков Google: когда переключатель отключен от настроек, кажется, что приложение уже занесено в белый список (подробности и источник в ответе ниже)
3. Я смущен, потому что они отвечают мне по-другому: «Пожалуйста, протестируйте его в следующем публичном выпуске и сообщите нам, если у вас все еще возникают проблемы». issuetracker.google.com/issues/182822816
Ответ №1:
Я получил официальный ответ от команды разработчиков Google :
«Переключатель отключен для некоторых приложений, выполняющих фоновую службу, включая приложения администратора устройства Всякий раз, когда переключатель скрыт / отключен, приложение уже освобождается от автоматического отзыва«
Источник : https://issuetracker.google.com/issues/172325509
Моя проблема, наконец, решена сама собой!
Комментарии:
1. Спасибо за упоминание. Я столкнулся с этой проблемой с приложением администратора устройства, в котором есть фоновые службы.
Ответ №2:
Пожалуйста, попробуйте выполнить следующие действия:
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. подпишите свое приложение с помощью ключа платформы (см. Пример), используйте в приложении build.gradle:
signingConfigs {
sign_platform {
keyPassword 'android'
storeFile file('platform.keystore')
storePassword 'android'
keyAlias 'platform'
}
}
defaultConfig {
signingConfig signingConfigs.sign_platform
}
Комментарии:
1. или установите ее в настройках вашего устройства: Настройки-> Приложения -> YourApp -> Разрешения -> Удалить разрешения, если приложение не используется
2. Полезно знать, что функции системных приложений можно эмулировать таким образом, но опубликовать приложение в Play Store таким образом невозможно.
3. Привет, я уже пробовал шаги 1 и 2, но мне кажется, что существует внутренняя и, возможно, плохо документированная механика, которая скрывает раздел настроек, когда приложение автоматически попадает в белый список (более подробная информация и источник в ответе ниже)