用ACTION_UNINSTALL_PACKAGE卸载安卓应用程序的旧方法在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。我试图对当前活动作出意图,但这些代码所做的只是重新创建该活动。有什么想法吗?还有谢谢
发布于 2022-01-28 14:07:04
基于意图的方法仍然适用于API级别的29+设备。只需将您的意图操作更改为
Intent.ACTION_DELETE
此外,还需要添加删除包的权限。
以下是完整的代码:
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是一个整数值。
https://stackoverflow.com/questions/61442337
复制相似问题