Android, runtime exec удаление пакета

#android #kotlin #adb #adb-shell

#Android #kotlin #adb

Вопрос:

 val newInput = "pm uninstall --user 0 $input"
val process = Runtime.getRuntime().exec(newInput)
process.waitFor()
 

‘input’ — это имя пакета, который нужно удалить. Я подписал приложение, чтобы сделать его системным приложением. Когда я пытаюсь запустить этот код, я получаю:

2020-12-23 11:39:18.313 19993-19993/? E / cutils-trace: ошибка при открытии файла трассировки: отказано в разрешении (13) 2020-12-23 11:39:18.489 19993-19993/? E / memtrack: не удалось загрузить модуль memtrack (нет такого файла или каталога) 2020-12-23 11:39:18.489 19993-19993/? E/android.os.Debug: не удалось загрузить модуль memtrack: -2

Как я могу удалить приложение из другого приложения с разрешением?

Ответ №1:

Для удаления других приложений вы должны получить одобрение пользователя. Вы можете выполнить этот процесс с помощью intent .

     Uri packageURI = Uri.parse("package:" "some.package.to.remove");
    Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
    startActivity(uninstallIntent);