HarmonyOS鸿蒙Next中怎么获取设备上所有已安装的应用列表

HarmonyOS鸿蒙Next中怎么获取设备上所有已安装的应用列表 鸿蒙不通过mdm的方式有没有办法获取设备上所有已安装的应用列表

8 回复

更多关于HarmonyOS鸿蒙Next中怎么获取设备上所有已安装的应用列表的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


目前鸿蒙不支持开发者获取应用列表,目前可以通过跨应用关联可以读取部分应用信息(仅应用名称和版本信息以及浏览信息),跨设备关联用于在某应用上打开另一个应用,从某一应用上获取应用信息。

不支持 获取设备上已安装的应用列表。

不允许 查询设备应用列表数据,无法申请相关权限。

详情请见:【官方说明】

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

比较难,普通鸿蒙应用无法获取设备上所有已安装的应用列表,仅能通过 BundleManager 获取部分符合权限条件的应用信息或通过隐式 Intent 查询特定应用。

加油,

在HarmonyOS Next中,使用BundleManager获取设备上已安装应用列表。通过getAllApplicationBundleInfo()方法查询所有应用的BundleInfo,从中提取应用名称、包名等。需声明ohos.permission.GET_BUNDLE_INFO权限,并在module.json5中配置。该方法返回系统预置和用户安装的全部应用信息。

在HarmonyOS Next中,可通过bundleManager模块的getAllBundleInfo()方法获取设备上所有已安装的应用列表。示例代码如下:

import bundleManager from '@ohos.bundle.bundleManager';
import { BusinessError } from '@ohos.base';

try {
  let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;
  let bundleInfos = await bundleManager.getAllBundleInfo(bundleFlags);
  console.log(JSON.stringify(bundleInfos));
} catch (error) {
  let err: BusinessError = error as BusinessError;
  console.error(`Error code: ${err.code}, message: ${err.message}`);
}

该方法需要申请ohos.permission.GET_BUNDLE_INFO权限,并在module.json5中声明:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.GET_BUNDLE_INFO",
        "reason": "$string:reason"
      }
    ]
  }
}

此方式无需MDM即可获取完整应用列表,但需注意权限申请和用户授权流程。

回到顶部