HarmonyOS鸿蒙Next中怎么获取三方应用的名称和图标

HarmonyOS鸿蒙Next中怎么获取三方应用的名称和图标 【问题描述】:怎么获取三方应用的名称和图标。需要获取其他应用的图标和名称,展示到我的软件中。根据社区资料中获取应用信息。涉及的权限,文档中未找到相关权限介绍。

14 回复

开发者您好,设备上的已安装应用列表属于用户隐私数据,出于安全隐私考虑,HarmonyOS对外不提供接口获取设备上的已安装的应用列表。如果您有诉求,辛苦您提供以下信息:

请问您是在什么样的业务场景中使用该能力,交互流程是怎样的,在哪一个环节遇到了问题?方便说明能力不满足可能带来的影响:什么时间用到?是否高频?有无三方库可以做到?若提供该能力,是否会造成大工作量返工?请您注意提供的内容不要包含您或第三方的非公开信息,如给您带来不便,敬请谅解。

更多关于HarmonyOS鸿蒙Next中怎么获取三方应用的名称和图标的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


调用三方应用名称图标添加到我的应用白名单中。在白名单列表展示这些应用。然后点击白名单的应用可以直接打开软件

开发者您好,目前已有应用时间管理Kit,可以拉起应用选择页并添加对应的管理策略,控制应用时间推荐使用:Screen Time Guard Kit(屏幕时间守护服务),通过Picker拉起应用选择页。

您看下以上方案是否可以接受。

开发者您好,想要获取三方应用的名称和图标,没有相关接口,需要手工采集,方法如下:

第一步:首先参考我的这篇文章 三步教你轻松获取应用包名(点击查看) 中第2步复制,得到分享链接;

第二步:将上一步获取的链接复制到电脑浏览器打开,以微信为例,见下图,鼠标右键点击应用图标,点击图片另存为,保存为.png格式,如下图所示:

微信应用图标

目前不支持,建议从第三方找找

不支持的。

cke_231.png

目前不支持在本应用中通过api获取手机三方应用名称包名等其他信息;
可以通过hdc命令获取某个应用或者全部应用包名

hdc shell bm dump -a  //获取手机所有包名
hdc shell bm dump -n <包名>  //获取指定应用的详细信息

//主要这个
hdc shell bm dump -a -l // 获取所有已安装应用的包名和名称

系统应用才可以,普通三方应用不行。

可以查看这个文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-bundlemanager-applicationinfo

据我理解,目前 HarmonyOS NEXT 普通应用并不能像 Android 一样随意获取其他应用的名称、图标和安装列表。 ApplicationInfo 文档只是对象定义,不代表可以获取任意三方应用的信息。根据文档看主要还是获取当前应用信息,如果是想做“应用列表”“应用选择器”这类能力,目前看应该是不能做到。我目前没看到官方文档明确支持普通应用读取所有三方 App 图标和名称。

希望能帮到你~~~

开发者您好,目前不支持查看其他三方应用的名称和图标,仅可以通过bundleManager.getBundleInfoForSelf()查询自身应用包的信息。

出于安全隐私的考虑,三方应用目前只能通过 bundleManager.getBundleInfoForSelf()查询自身应用包的信息,不支持查询其他应用包的信息

如果是要获取特定类型的,比如要打开地图场景,且手机里有多个地图软件,你要展示选择,可以调用 startAbilityByType接口并传入 type为 “navigation”,系统会自动拉起一个导航类应用扩展面板,面板上会展示设备上所有支持导航意图的地图应用(包括图标和名称),由用户选择后直接跳转。但是无法自定义选择列表的 UI

context.startAbilityByType('navigation', wantParam, abilityStartCallback);

你要是其他场景,在智能客服里问问你的场景Type要传啥

在HarmonyOS Next中,可使用 @ohos.bundle.bundleManagergetBundleInfoForSelfgetApplicationInfos 获取三方应用信息。通过返回的 ApplicationInfo 对象的 name 字段获取名称,icon 字段获取图标资源ID。需声明 ohos.permission.GET_BUNDLE_INFO 权限。

在HarmonyOS Next中,普通第三方应用无法直接获取其他应用的名称和图标
相关接口(如bundleManager.getBundleInfobundleManager.getMediaData)需要系统权限ohos.permission.GET_BUNDLE_INFO,该权限仅限系统应用申请,不向普通开发者开放。因此,您在公开文档中看不到该权限的申请指引。

若需实现类似应用列表的展示,请通过系统提供的startAbility选择器或桌面快捷方式等系统能力完成,避免自行遍历已安装应用。

回到顶部