Подтвердить что ты не робот

Можно ли программно удалить пакет на Android?

Можно ли удалить пакет самостоятельно? Может ли пакет удалить другой пакет, если они имеют один и тот же идентификатор пользователя и подпись?

4b9b3361

Ответ 1

Эй, возможно, слишком поздно, но это работает для меня.

Uri packageURI = Uri.parse("package:"+"your.packagename.here");
    Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
    startActivity(uninstallIntent);

Ответ 2

Стороннее приложение не может программно устанавливать или удалять любые другие пакеты, что будет угрозой безопасности для Android. Однако стороннее приложение может попросить ОС Android установить или удалить пакет с использованием намерений, этот вопрос должен предоставить более полную информацию:

программно установить/удалить APK (PackageManager vs Intents)

Ответ 3

Стороннее приложение не может удалить приложение Silently!

Либо вам нужно стать Системным приложением, чтобы получить разрешение DELETE_PACKAGES, либо показать всплывающее окно "Удаление всплывающего окна" (подтверждение пользователя)

В качестве альтернативы, вы можете получить разрешение на доступность, а затем, показав наложение доступности, вы можете сказать своей службе нажать кнопку Удалить ! Но это будет нарушением конфиденциальности.

Ответ 4

В Kotlin, используя API 14+, вы можете просто вызвать следующее:

startActivity(Intent(Intent.ACTION_UNINSTALL_PACKAGE).apply {
     data = Uri.parse("package:$packageName")
})

Или с Android KTX:

startActivity(Intent(Intent.ACTION_UNINSTALL_PACKAGE).apply {
     data = "package:$packageName".toUri()
})

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