HarmonyOS:应用程序包管理模块(获取当前应用信息)

一、简介

@ohos.bundle.bundleManager (应用程序包管理模块)

本模块提供应用信息的查询能力,支持应用包信息BundleInfo 、应用程序信息ApplicationInfo 、UIAbility组件信息AbilityInfo 、ExtensionAbility组件信息ExtensionAbilityInfo等信息的查询。
说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

1.1 导入模块
c 复制代码
import { bundleManager } from '@kit.AbilityKit';
1.2 bundleManager.getBundleInfoForSelf接口

getBundleInfoForSelf(bundleFlags: number): Promise<BundleInfo>

根据给定的bundleFlags获取当前应用的BundleInfo。使用Promise异步回调。

Meta Service API : Starting from API version 11, this interface supports usage in Meta Services.

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleFlags number 是 指定返回的BundleInfo所包含的信息。

返回值:

类型 说明
Promise<BundleInfo> Promise对象,返回当前应用的BundleInfo。

二、示例

效果图

示例代码

BundleManagerUtil.ets

c 复制代码
import { bundleManager } from "@kit.AbilityKit";
import { BundleInfoData } from "../model/BundleInfoData";
import { JSON } from "@kit.ArkTS";

const TAG = "BundleManagerUtil,"

export class BundleManagerUtil {
  public static getBundleInfo(): Promise<string> {
    try {
      return bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
        .then((bundleInfo: bundleManager.BundleInfo) => {
          const appInfo: bundleManager.ApplicationInfo = bundleInfo.appInfo;
          console.log(TAG + "appInfo:" + JSON.stringify(appInfo))
          const bundleInfoData: BundleInfoData =
            new BundleInfoData(bundleInfo.versionName, bundleInfo.versionCode, bundleInfo.name);
          AppStorage.setOrCreate('bundle_info', bundleInfoData);
          return Promise.resolve(JSON.stringify(appInfo));
        })
        .catch((error: BusinessError) => {
          console.error(TAG, `getBundleInfoForSelf failed: code ${error.code}, message ${error.message}`);
          return Promise.reject("获取app信息 发生异常");
        });
    } catch (e) {
      const error = e as BusinessError;
      console.error(TAG, `getBundleInfoForSelf failed: code ${error.code}, message ${error.message}`);
      return Promise.reject("获取app信息 发生异常");
    }
  }
}

BundleInfoData.ets

c 复制代码
export class BundleInfoData {
  public versionName: string;
  public versionCode: number;
  public bundleName: string;

  public constructor(versionName: string, versionCode: number,
    bundleName: string) {
    this.versionName = versionName ?? '1.0.0';
    this.versionCode = versionCode ?? 1000000;
    this.bundleName = bundleName ?? 'com.test.app';
  }
}

TestGetAppInfo.ets

c 复制代码
import { BundleManagerUtil } from '../../common/utils/BundleManagerUtil';

@Entry
@Component
struct TestGetAppInfo {
  @State appinfo: string = '';

  build() {
    Column({ space: 20 }) {
      if (this.appinfo) {
        Scroll() {
          Text(this.appinfo)
            .id('TestGetAppInfoHelloWorld')
            .fontSize($r('app.float.text_size_20fp'))
            .margin({ left: 16, right: 16 })
        }
        .height(600)
        .margin({ top: 40 })
      }
      Button("查看app信息").onClick(() => [
        BundleManagerUtil.getBundleInfo().then((appInfo) => {
          this.appinfo = appInfo
          console.log("查看app信息返回的数据:", appInfo)
        })
      ])
        .margin({ top: 40 })
    }
    .height('100%')
    .width('100%')
  }
}
相关推荐
resh_people10 小时前
开源鸿蒙平台 KMP_CMP 三方库「Kermit」适配全流程
华为·开源·harmonyos
李游Leo11 小时前
HarmonyOS 7 EasyGo + ArkUI Navigation:平行视界主副页筛选事务与跨栏撤销一致性【鸿蒙心迹】
华为·harmonyos
HwJack2012 小时前
【共创稿事节】HarmonyOS 7空间应用的可用性测试和体验评估小方法分享
华为·harmonyos·可用性测试
m0_7381858212 小时前
Flutter 鸿蒙化实战:flutter_scankit 适配 OpenHarmony,华为 ScanKit 扫码
flutter·华为·harmonyos·鸿蒙
用户1179104883314 小时前
别让AI随便启动你的LSP:hmharness给语言服务器加SHA256门禁 GitHub:swsgbl/hmharness
ai编程·harmonyos
李游Leo18 小时前
HarmonyOS 7 + Share Kit-Window Kit:精准碰一碰屏幕坐标的窗口换算与落点拒绝【鸿蒙心迹】
华为·harmonyos
翼辉cto18 小时前
Compose Multiplatform KV 存储库 multiplatform-settings 的 OpenHarmony 鸿蒙化适配实战
华为·harmonyos
事圆则缓19 小时前
Flutter 开发鸿蒙实战:从 OpenHarmony 适配版到 HAP 构建与插件接入
flutter·华为·harmonyos
传奇开心果编程19 小时前
【ArkUI进阶练中学】第9课:分布式能力与多设备协同
学习·ui·华为·harmonyos
李游Leo20 小时前
HarmonyOS 7 + Spatial Recon Kit-C++:3DGS 输入帧内参与位姿的版本一致性门禁【鸿蒙心迹】
c++·3d·harmonyos