首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用新的PackageInstaller api卸载android应用程序?

如何使用新的PackageInstaller api卸载android应用程序?
EN

Stack Overflow用户
提问于 2020-04-26 14:21:02
回答 1查看 465关注 0票数 4

ACTION_UNINSTALL_PACKAGE卸载安卓应用程序的旧方法在API 29中被废弃了。现在建议改用PackageInstaller.uninstall(packageName: String, statusReceiver: IntentSender)。到目前为止,这是一个发明出来的:

代码语言:javascript
复制
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。我试图对当前活动作出意图,但这些代码所做的只是重新创建该活动。有什么想法吗?还有谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-28 14:07:04

基于意图的方法仍然适用于API级别的29+设备。只需将您的意图操作更改为

Intent.ACTION_DELETE

此外,还需要添加删除包的权限。

以下是完整的代码:

代码语言:javascript
复制
val pkg             = "package_to_delete" 
val uri: Uri        = Uri.fromParts("package", pkg, null)
val uninstallIntent = Intent(Intent.ACTION_DELETE, uri)

startActivityForResult(uninstallIntent, EXIT_REQUEST)

在上面的代码中,pkg是要以字符串格式删除的应用程序的packageName,而EXIT_REQUEST是一个整数值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61442337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档