删除不适用于 android 饼图的应用 Intent
Delete app intent not working on android pie
这在过去有效,但不再适用于我的 android 饼图设备(在最近的饼图更新之前有效):
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 )
}
我找不到任何表明此 Intent 不再有效的文档。
有谁知道是否有其他方法可以在 android pie 上打开卸载对话框?
代码仍然有效,应该是应用程序未请求执行它的权限。
自Android Pie (Android 9)起,应用程序必须声明他们要求删除应用程序。这可以通过将此权限添加到 AndroidManifest.xml
:
来完成
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
* 请注意,在运行时不需要请求此权限。在 Manifest 中声明它就足够了。
此外,我们可以使用 ACTION_UNINSTALL_PACKAGE
操作代替删除包的请求。对于此操作,文档提到需要上述权限才能正常工作,因为 Android Pie.
这在过去有效,但不再适用于我的 android 饼图设备(在最近的饼图更新之前有效):
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 )
}
我找不到任何表明此 Intent 不再有效的文档。
有谁知道是否有其他方法可以在 android pie 上打开卸载对话框?
代码仍然有效,应该是应用程序未请求执行它的权限。
自Android Pie (Android 9)起,应用程序必须声明他们要求删除应用程序。这可以通过将此权限添加到 AndroidManifest.xml
:
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
* 请注意,在运行时不需要请求此权限。在 Manifest 中声明它就足够了。
此外,我们可以使用 ACTION_UNINSTALL_PACKAGE
操作代替删除包的请求。对于此操作,文档提到需要上述权限才能正常工作,因为 Android Pie.