Android: дать разрешения во время выполнения - PullRequest
0 голосов
/ 20 июня 2019

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

Получение необходимых имен и разрешений пакетов работает нормально.Для предоставления разрешения я использую этот код:

Runtime.getRuntime().exec("pm grant com.example.app android.permission.WRITE_EXTERNAL_STORAGE") 

Но я получаю эту ошибку:

Операция не разрешена: java.lang.SecurityException: grantRuntimePermission: Ни пользователь 10078, нитекущий процесс имеет android.permission.GRANT_RUNTIME_PERMISSIONS.

Когда я выполняю команду с оболочкой adb, она отлично работает.

Затем я попытался дать моему приложению разрешение GRANT_RUNTIME_PERMISSIONS с оболочкой adb+ su, и я получаю:

Операция не разрешена: java.lang.SecurityException: Разрешение android.permission.GRANT_RUNTIME_PERMISSIONS не является изменяемым типом разрешения

Есть ли у кого-нибудьидея, как этого добиться?

Большое спасибо.

...