Как удалить программно приложение в Android?
Есть список объектов ApplicationInfo. Мне необходимо отобразить поочередно диалоговые окна, где пользователь может отказаться или удалить приложение со своего телефона.
val packageURI = Uri.parse("package:${it.packageName}")
val intent = Intent(Intent.ACTION_DELETE, packageURI)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
Данный код выводит как и нужно диалоговое окно, но без коллбека, где я могу узнать что выбрал пользователь, чтобы затем отобразить следующее диалоговое окно.
Также пытался удалить с помощью PackageInstaller, но ничего не удаляется и не отображается.
val packageInstaller: PackageInstaller = context.packageManager.packageInstaller
packageInstaller.uninstall(
packageName,
createUninstallIntentSender(context, packageName)
)
private fun createUninstallIntentSender(
context: Context,
packageName: String
): IntentSender {
val intent = Intent(ACTION_UNINSTALL_COMPLETE)
intent.putExtra(Intent.EXTRA_PACKAGE_NAME, packageName)
val pendingIntent = PendingIntent.getBroadcast(
context, 0,
intent, 0
)
return pendingIntent.intentSender
}
Ответы (1 шт):
В настоящее время это не доступно для сторонних приложений. Использование рефлексии или других приемов доступа к install Package() не поможет, потому что его могут использовать только системные приложения. (Это связано с тем, что это механизм низкоуровневой установки после того, как разрешения дадим утверждены, поэтому для обычных приложений небезопасно иметь доступ к ним)