【发布时间】:2020-08-10 00:45:27
【问题描述】:
使用 ACTION_UNINSTALL_PACKAGE 卸载 Android 应用程序的旧方法在 API 级别 29 中已弃用。现在建议使用 PackageInstaller.uninstall(packageName: String, statusReceiver: IntentSender) 代替。到目前为止,这是一个想法:
fun uninstal(){
val packageName = "some package name"
val packageInstaller = this.packageManager.packageInstaller
val intent = Intent(this, this::class.java)
val sender = PendingIntent.getActivity(this, 0, intent, 0)
packageInstaller.uninstall(packageName, sender.intentSender)
}
我不知道如何提供IntentSender。我试图从当前活动和到当前活动做出意图,但所有这些代码所做的只是重新创建活动。请问有什么想法吗?并感谢
【问题讨论】:
-
“我试图在当前活动中创建一个意图,但所有这些代码所做的只是重新创建活动”——然后可能使用
getBroadcast()并路由到BroadcastReceiver。卸载操作完成后,我们不知道您要做什么。 -
正常情况下,当尝试卸载应用程序时,会出现一个弹出窗口,提示用户是卸载应用程序还是取消,但在这种情况下没有任何反应
-
我认为
IntentSender是为了最终结果,而不是为了用户确认。用户确认将由操作系统提出。你有卸载包的权限吗? -
是的,我添加了文档中指定的必要权限,但仍然没有任何反应
标签: android uninstallation packageinstaller