前言

在OpenHarmony应用开发中,获取系统环境配置(如系统字体大小、系统屏幕方向、系统语言等)都是常见需求,下文会为大家介绍如何获取并且监听系统及应用的环境变量配置。

开发环境

DevEco Studio: DevEco Studio 5.0.2 Release(Build Version: 5.0.7.200)

系统: OpenHarmony 5.1.0.45

设备: DAYU200(rk3568)

获取及监听流程

下文以系统字体大小为例

通过@ohos.app.ability.Configuration获取

可以通过获取UIAbilityContext后直接读取

let fontSizeScale = this.context.config.fontSizeScale

通过@ohos.settings获取

可以通过getValueSync获取key对应的value

let getFontSizeScale = settings.getValueSync(this.context, settings.display.FONT_SCALE, '0');

注意: 想通过getValueSync获取相应的参数,比如保证settings_data里已经包含此参数。有些系统这些参数没有默认值,因此需要手动设置一次后才能正常读取。

通过@ohos.app.ability.Configuration监听

可以通过获取UIAbilityContext后监听

this.context.getApplicationContext().on('environment', {
      onConfigurationUpdated(config) {
        let fontSizeScale = config.fontSizeScale
      },
      onMemoryLevel(level) {

      }
    })

通过@ohos.settings监听

可以通过registerKeyObserver监听settings_data的值变化

settings.registerKeyObserver(this.context, settings.display.FONT_SCALE, settings.domainName.DEVICE_SHARED, (err, val) => {
      if (err) {
        return;
      }
      
      let value: string = settings.getValueSync(this.context, settings.display.FONT_SCALE, '0');
    });

参考文献

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-configuration.md

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-settings.md

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐