Ton*_*Joe 5 android uninstallation packageinstaller
卸载 Android 应用程序的旧方法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)
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何提供IntentSender. 我尝试在当前活动中创建一个意图,但这些代码所做的只是重新创建该活动。有什么想法吗?谢谢
基于 Intent 的方法仍然适用于 API 级别 29+ 的设备。只需将您的 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)
Run Code Online (Sandbox Code Playgroud)
上面的代码中,pkg 是要删除的 App 的 packageName,采用字符串格式,EXIT_REQUEST 是一个 Integer 值。
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |