Можно ли удалить пакет самостоятельно? Может ли пакет удалить другой пакет, если они имеют один и тот же идентификатор пользователя и подпись?
Можно ли программно удалить пакет на Android?
Ответ 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
на любое имя пакета другого приложения.