首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PackageManager.GET_META_DATA是什么意思?为什么应用程序不出现?

PackageManager.GET_META_DATA是什么意思?为什么应用程序不出现?
EN

Stack Overflow用户
提问于 2022-07-16 19:39:01
回答 1查看 160关注 0票数 1

我有一个应用程序,接受来自其他应用程序的某些数据。其他应用程序通常会检查我的应用程序是否已经安装。由于某种原因,其他一些应用程序开发人员会做一些复杂的检查,有时会失败。这经常会导致我收到不好的评论,因为这些应用告诉用户安装我的应用程序,而他们确实安装了,但它一直告诉他们,因为它找不到我的应用程序。

因此,我对其中一个应用程序进行了分解,我想我找到了问题所在。他们得到了一个安装了如下应用的列表:

代码语言:javascript
运行
复制
getPackageManager().getInstalledApplications(128)

128似乎是PackageManager.GET_META_DATA,但我不知道这意味着什么,为什么我的应用程序没有出现在列表中?

我在这篇文章中读到过Android PackageManager can only detect system apps on physical devices,它可能与Android11 https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9上的包可见性有关,但是我尝试添加了<queries>元素,这一点也没有帮助。这是他们需要添加的东西还是我需要添加的东西?

编辑:弄清楚了<queries>是如何工作的。搜索我的应用程序一定有它。所以这对我没什么帮助。有什么方法可以让我的应用在查询包时出现在这些应用程序中吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-16 19:57:17

我不知道那是什么意思

这意味着返回的数据将包含清单中<meta-data>元素的内容。

,为什么我的应用程序没有出现在列表中?

这个问题不太可能直接与GET_META_DATA有关。

然而,IIRC,这些PackageManager方法是容量有限的,如果有太多或它们太大的话,可能不会返回所有的结果。在这方面,GET_META_DATA将增加响应的大小,并可能导致该响应在列表中的元素方面不完整。如果你的应用程序因此被错过,那么你就会看到你的行为。

真正的问题是,他们一开始就调用getInstalledApplications()GET_META_DATA只会让情况变得更糟。

由于某种原因,其他一些应用程序开发人员会做一些复杂的检查,有时会失败。

考虑提供一个处理检查的SDK,使用比“获取所有已安装应用程序及其<meta-data>内容的列表”更集中的技术。根据应用程序的性质,SDK还可能包含检查应用程序签名以确定其与预期值匹配的代码,因此其他应用程序不会尝试与应用程序的冒牌货或破解版本进行通信。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73007157

复制
相关文章

相似问题

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