这在过去有效,但在我的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上的卸载对话框吗?
答案 0 :(得分:7)
该代码仍然可以运行,可能是该应用未请求执行权限。
自Android Pie(Android 9)起,要求应用程序声明它们要求删除应用程序。可以通过将此权限添加到AndroidManifest.xml
来完成:
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
*注意,在运行时不需要请求此权限。在清单中进行声明就足够了。
此外,我们可以使用ACTION_UNINSTALL_PACKAGE
操作代替删除软件包的请求。对于此操作,文档中提到,自Android Pie起,必须具有上述权限才能运行。