AppUtils.ets 2.25 KB
import bundleManager from '@ohos.bundle.bundleManager';
import common from '@ohos.app.ability.common';
import { Logger } from './Logger';
import BuildProfile from 'BuildProfile';

const TAG: string = 'AppUtils';

/**
 * 与应用相关属性或操作
 */
export class AppUtils {
  private static buildVersion: string = ''
  static {
    AppUtils.buildVersion = BuildProfile.BUILD_VERSION;
  }

  /**
   * 获取应用名称
   * 即:人民日报
   */
  static getAppName(context: common.Context): string {
    // todo:获取到的是 $string:app_name
    // return context.applicationInfo?.label;
    return context.resourceManager.getStringByNameSync("app_name");
  }

  /**
   * 获取应用的包名
   */
  static getPackageName(context: common.Context): string {
    return context.applicationInfo?.name;
  }

  /**
   * 获取应用版本号,如:1.0.0.0
   * @returns 版本号字符串
   */
  static getAppVersionName(): string {
    try {
      let bundleInfo = bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT)
      return bundleInfo?.versionName
    } catch (e) {
      Logger.warn(TAG, 'get app version error:' + e?.message);
    }
    return "";
  }

  /**
   * 获取应用版本编码,如:1000000
   * @returns 应用版本编码
   */
  static getAppVersionCode(): string {
    try {
      let bundleInfo = bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT)
      return bundleInfo?.versionCode + ""
    } catch (e) {
      Logger.warn(TAG, 'get app version error:' + e?.message);
    }
    return '';
  }

  static getAppChannel() {
    // TODO: 待确认,暂时写死一个
    return "rmrb_china_0000"
  }

  static getOSName() {
    // TODO: 待确认,暂时写死Android
    return "Harmony"
  }

  static getFingerprint(): string {
    try {
      let bundleInfo =
        bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO);
      let finger = bundleInfo.signatureInfo.fingerprint;
    } catch (e) {
      Logger.warn(TAG, 'get app signatureinfo error:' + e?.message);
    }
    return '';
  }

  /**
   * 应用build版本,时间,如:'202405291450'
   */
  static getBuildVersion(): string {
    return AppUtils.buildVersion;
  }
}