Можно ли программно удалить пакет в Android - PullRequest
34 голосов
/ 21 мая 2009

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

Ответы [ 4 ]

15 голосов
/ 13 июля 2015

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

Uri packageURI = Uri.parse("package:"+"your.packagename.here");
    Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
    startActivity(uninstallIntent);
5 голосов
/ 08 марта 2012

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

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

1 голос
/ 18 октября 2017

В 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 на любое имя пакета другого приложения.

1 голос
/ 29 марта 2017

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...