HarmonyOS 如何获取设备信息?

需求场景:目前要获取手机的制造商、手机型号、分辨率等

阅读 578
1 个回答

应用包的版本号versionCode 、应用包的版本文本描述信息。versionName 、 应用包的供应商:vendor, 可以参考如下: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bundlemanager-V5\#bundlemanagergetbundleinfoforself

参考demo:

// 额外获取带有metadataArray信息的appInfo
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

@Entry
@Component
struct Index{
  getInfo(){
    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA;
    try {
      bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
        hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
      }).catch((err: BusinessError) => {
        hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
      });
    } catch (err) {
      let message = (err as BusinessError).message;
      hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
    }
  }
  build(){
    Button('获取手机相关信息').width(100).height(100)
      .onClick(()=>{
        this.getInfo()
      })
  }

使用display.getAllDisplays可以获取屏幕分辨率,densityDPI对应的就是设备屏幕的物理像素密度

参考demo:

import { BusinessError } from '@kit.BasicServicesKit';
import { display } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  onPageShow(){
    let displayClass: Array<display.Display> = [];
    display.getAllDisplays((err: BusinessError, data: Array<display.Display>) => {
      displayClass = data;
      const errCode: number = err.code;
      if (errCode) {
        console.error('Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}');
        return;
      }
      console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
    });
  }

  build() {
    Button('获取分辨率').width(100).height(100)
  }
}

参考如下链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-display-V5\#displaygetalldisplays9