删除无法在Android Pie上使用的应用程序意图

时间:2019-02-08 18:00:42

标签: android android-intent android-9.0-pie

这在过去有效,但在我的android pie设备上不再起作用(在最近的pie更新之前有效):

fun uninstallApp(packageName: String) {
    val packageURI = Uri.parse("package:$packageName")
    val intent = Intent(Intent.ACTION_DELETE, packageURI)
    intent .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    startActivity(intent )
}

我找不到任何文档表明此意图不再起作用。

有人知道是否还有其他方法可以打开android pie上的卸载对话框吗?

1 个答案:

答案 0 :(得分:7)

该代码仍然可以运行,可能是该应用未请求执行权限。

自Android Pie(Android 9)起,要求应用程序声明它们要求删除应用程序。可以通过将此权限添加到AndroidManifest.xml来完成:

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

*注意,在运行时不需要请求此权限。在清单中进行声明就足够了。


此外,我们可以使用ACTION_UNINSTALL_PACKAGE操作代替删除软件包的请求。对于此操作,文档中提到,自Android Pie起,必须具有上述权限才能运行。