HarmonyOS 怎么获取手机设置中是否开启了深色模式主题?

在开发文档里没找到能获取手机设置是否打开了深色模式的方法,只找到获取app内的深浅模式切换

阅读 552
1 个回答

看下下面代码是否满足诉求 colorMode 为模式属性

onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  // 获取系统设置信息
  let envCallback: EnvironmentCallback = {
    onConfigurationUpdated(config) {
      console.info(`envCallback onConfigurationUpdated success: ${JSON.stringify(config)}`);
      let language = config.language;
      let colorMode = config.colorMode;
      let direction = config.direction;
      let screenDensity = config.screenDensity;
      let displayId = config.displayId;
      let hasPointerDevice = config.hasPointerDevice;
      let fontSizeScale = config.fontSizeScale;
      let fontWeightScale = config.fontWeightScale;
    },
    onMemoryLevel(level) {
      console.log('onMemoryLevel level: ${level}');
    }
  };
  try {
  let applicationContext = this.context.getApplicationContext();
  let callbackId = applicationContext.on('environment', envCallback);
  console.log(`colorMode: ${this.context.config.colorMode}`);
console.log(`callbackId: ${callbackId}`);
} catch (paramError) {
  console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
}
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进