android - Android 9 Intent.ACTION_UNINSTALL_PACKAGE 不起作用
问题描述
在android pie上,我想调用包管理器来卸载我自己的应用程序。这是我正在尝试的:
val uri = Uri.parse("package:$packageName")
val uIntent = Intent(Intent.ACTION_UNINSTALL_PACKAGE, uri)
startActivity(uIntent)
奇怪的是,这不起作用。logcat 中也没有显示任何内容。
我也试过 ACTION_DELETE
val uri = Uri.parse("package:$packageName")
val uIntent = Intent(Intent.ACTION_DELETE, uri)
startActivity(uIntent)
请告诉我我做错了什么。这似乎是一项非常简单的工作。我是否缺少任何许可或需要在清单中声明的内容?谢谢。
解决方案
我缺少清单许可。
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
这可能是 Android 6.0 及更高版本所必需的。问题中的代码现在可以完美运行。在 Android 9 和 Android 10 上测试。
推荐阅读
- android - Dagger 应用程序组件未生成
- html - 使用内联样式的简单 flexbox 网格
- python - 如何使用appium查找哪个应用程序在前台
- android - 在后台加载图像并显示加载页面
- css - 在个人站点的根目录下为 GitHub Pages 准备 Jekyll(baseurl 不是不必要的吗?)
- .net - 隐藏扩展时如何避免 AssemblyName.exe.config 混淆?
- php - htaccess 无法将文章 ID 重定向到使用 php slug 函数生成的文章 slug
- firebase - Firebase Stream 功能无法正常工作
- php - 具有多个条件的 laravel 查询更新
- powerbi - Microsoft Power BI:折线图过去 13 周的数据 3 年