gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:49:59 36 4
gpt4 key购买 nike

使用 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 .我试图在当前 Activity 中创建一个 Intent ,但是这些代码所做的只是重新创建 Activity 。请问有什么想法吗?谢谢

最佳答案

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

Intent.ACTION_DELETE


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

<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>


这是完整的代码:
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 是您要删除的 App 的 packageName 字符串格式,EXIT_REQUEST 是一个 Integer 值。

关于android - 如何使用新的 PackageInstaller api 卸载 android 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61442337/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com