HarmonyOS鸿蒙Next中如何查看手机里面安装的应用有哪些?

HarmonyOS鸿蒙Next中如何查看手机里面安装的应用有哪些? 需要在自动化中实现如何查看手机里面安装的应用有哪些?

5 回复

有时候你想卸载一个 App,手指悬在键盘上准备敲命令,突然愣住了:哎?我的包名(Bundle Name)是啥来着?”是 com.example.demo?还是 com.test.final.v2?

别去翻 AppScope/app.json5 了,直接问手机。

1. 查看所有已安装的包

我们需要进入手机的 Shell 环境,问问包管理器(Bundle Manager, 简称 bm):

hdc shell bm dump -a

这会列出手机里成百上千个包名

2. 搜特定包名

如果你记得包名里包含 “demo”,可以用 grep (Linux/Mac) 或 findstr (Windows) 过滤一下:

# Windows
hdc shell bm dump -a | findstr demo

# Mac/Linux
hdc shell bm dump -a | grep demo

这样,你就能从包里面中找到那个 com.chengwu.superdemo

3.卸载

找到了包名,卸载就只是一行代码的事。

注意:这里用的是包名 (Bundle Name),不是 HAP 文件名!

hdc uninstall com.chengwu.superdemo

执行完这句,手机上那个图标就消失了,所有本地数据(数据库、缓存)也会被彻底清空。

如果我只想卸载 App,但想保留里面的数据库方便下次调试怎么办? > > 在 Android ADB 里有 -k (keep data) 参数,但在鸿蒙目前的 HDC 版本中,卸载通常就是“净身出户”。如果需要保留数据,建议直接用 -r 覆盖安装,而不是先卸载再安装。

更多关于HarmonyOS鸿蒙Next中如何查看手机里面安装的应用有哪些?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个功能目前好像华为没有开放其接口,防止恶意软件

应用内无法集成这个功能,应用外可以采用命令行来实现,

在HarmonyOS Next中,查看已安装应用的方法如下:

  1. 进入设置 > 应用管理,可查看所有已安装应用列表。
  2. 在桌面双指捏合进入编辑模式,点击底部应用图标,可查看按字母排序的应用列表。
  3. 从屏幕底部上滑进入最近任务界面,左右滑动可快速浏览近期打开的应用。

在HarmonyOS Next中,您可以通过自动化任务或开发代码来获取已安装的应用列表。主要方法是使用BundleManagerAppManager等系统能力。

核心方法:

  1. 使用@ohos.bundle.bundleManager(推荐): 这是查询应用信息的主要模块。您可以获取所有已安装应用的基本信息列表。

    示例代码片段:

    import bundleManager from '@ohos.bundle.bundleManager';
    import hilog from '@ohos.hilog';
    
    try {
      // 获取所有已安装的应用包信息
      let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;
      let userId = 100; // 默认用户ID,通常为100
      let appInfos = await bundleManager.getAllBundleInfo(bundleFlags, userId);
    
      // 遍历并处理应用信息
      appInfos.forEach((appInfo) => {
        hilog.info(0x0000, 'AppList', 'App Name: %{public}s, BundleName: %{public}s', 
                   appInfo.name, appInfo.bundleName);
        // 其他可用信息:versionName, vendor, iconId等
      });
    } catch (error) {
      hilog.error(0x0000, 'AppList', 'Failed to get app list. Error: %{public}s', error.message);
    }
    
  2. 在自动化场景中: 如果您指的是“自动化服务”(如通过@ohos.automation或系统快捷指令),目前系统级自动化任务可能无法直接获取完整应用列表并作为动态条件。通常需要:

    • 开发一个原子化服务:创建一个HarmonyOS应用,使用上述API获取列表,并暴露一个能力(如FA卡片或Service Ability)供自动化任务调用。
    • 查询特定应用状态:如果只是检查某个应用是否安装,自动化任务可能支持“应用状态”条件(如“如果某应用已安装”)。

关键说明:

  • 权限:查询全部应用通常需要ohos.permission.GET_BUNDLE_INFO_PRIVILEGED权限,该权限为系统级权限,普通应用无法直接获取。开发时需使用Full SDK并在签名环节配置对应的权限。
  • 用户ID:注意多用户场景下的用户ID参数。
  • 输出结果getAllBundleInfo返回的是BundleInfo数组,包含包名、应用名称、版本等元数据,不包含应用图标资源本身(但有图标资源ID)。

因此,在HarmonyOS Next中实现该功能,需要开发一个具有相应权限的HarmonyOS应用或原子化服务来提供此能力。

回到顶部