首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用android.permission.QUERY_ALL_PACKAGES的INSTALL_FAILED_DUPLICATE_PERMISSION

使用android.permission.QUERY_ALL_PACKAGES的INSTALL_FAILED_DUPLICATE_PERMISSION
EN

Stack Overflow用户
提问于 2021-11-23 12:16:22
回答 1查看 162关注 0票数 1

我正在我的应用程序中读取所有已安装的应用程序,以获取“图标”和安卓11中的软件包名称。我必须使用android.permission.QUERY_ALL_PACKAGES我不想使用<uses-permissions标签,因为这意味着对Google Play有特殊要求,我的应用程序在android Manifest中使用以下xml标签

代码语言:javascript
运行
复制
<permission android:name="android.permission.QUERY_ALL_PACKAGES" />

然而,显然其他应用程序也在做同样的事情,当他们尝试安装我的应用程序或旁载时,我会收到以下消息:

代码语言:javascript
运行
复制
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION: Package com.package.myApp attempting to redeclare permission android.permission.QUERY_ALL_PACKAGES already owned by com.package.another_app]

有没有办法解决这个问题?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-11-23 13:10:55

我的应用程序在Android Manifest中使用以下xml标记

你不应该通过这一行获得任何额外的功能。你应该只能根据你的<queries>元素访问这些应用程序,再加上那些对所有应用程序都可见的应用程序,而不考虑包的可见性规则。

然而,显然其他应用程序也在做同样的事情,当他们尝试安装我的应用程序或旁载时,我会收到以下消息:

从Android 11开始,操作系统定义了该权限。应用程序不能重新定义该权限。您的应用程序可能可以安装在许多Android 10及更低版本的设备上。在Android11上,因为操作系统是在你的应用程序之前“安装”的,所以你将不能拥有<permission>元素,因为你会得到你引用的错误。

有办法解决这个问题吗?

删除<permission>元素。以下任一项:

  • Request QUERY_ALL_PACKAGES
  • 使用<queries>元素确定所需访问权限的范围(请参阅this blog post中的“漏洞#1”),或
  • 删除需要此级别访问权限的应用程序功能,至少在Android 11和更高版本的设备上<代码>H218<代码>F219
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70080754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档