1# @ohos.app.ability.Configuration (Configuration)
2
3定义环境变化信息。Configuration是接口定义,仅做字段声明。
4
5> **说明:**
6> 
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { Configuration } from '@kit.AbilityKit';
13```
14
15## 属性
16
17**系统能力**:SystemCapability.Ability.AbilityBase
18
19| 名称 | 类型 | 只读 | 可选 | 说明 |
20| -------- | -------- | -------- | -------- | -------- |
21| language | string | 否 | 是 | 表示应用程序的当前语言,例如“zh"。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
22| colorMode | [ConfigurationConstant.ColorMode](js-apis-app-ability-configurationConstant.md#colormode) | 否 | 是 | 表示深浅色模式,默认为浅色。取值范围:<br />- COLOR_MODE_NOT_SET:未设置<br />- COLOR_MODE_LIGHT:浅色模式<br />- COLOR_MODE_DARK:深色模式<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
23| direction | [ConfigurationConstant.Direction](js-apis-app-ability-configurationConstant.md#direction) | 否 | 是 | 表示屏幕方向,取值范围:<br />- DIRECTION_NOT_SET:未设置<br />- DIRECTION_HORIZONTAL:水平方向<br />- DIRECTION_VERTICAL:垂直方向<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
24| screenDensity  | [ConfigurationConstant.ScreenDensity](js-apis-app-ability-configurationConstant.md#screendensity) | 否 | 是 | 表示屏幕像素密度,取值范围:<br />- SCREEN_DENSITY_NOT_SET:未设置<br />- SCREEN_DENSITY_SDPI:120<br />- SCREEN_DENSITY_MDPI:160<br />- SCREEN_DENSITY_LDPI:240<br />- SCREEN_DENSITY_XLDPI:320<br />- SCREEN_DENSITY_XXLDPI:480<br />- SCREEN_DENSITY_XXXLDPI:640<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
25| displayId  | number | 否 | 是 | 表示应用所在的物理屏幕ID。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
26| hasPointerDevice  | boolean | 否 | 是 | 指示指针类型设备是否已连接,如键鼠、触控板等。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
27| fontSizeScale<sup>12+<sup> | number | 否 | 是 | 字体大小缩放比例,取值为非负数,默认值为1。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
28| fontWeightScale<sup>12+<sup> | number | 否 | 是 | 字体粗细缩放比例,取值为非负数,默认值为1。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
29| mcc<sup>12+<sup> | string | 否  | 是 | 移动设备网络代码。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
30| mnc<sup>12+<sup> | string | 否  | 是 | 移动设备国家代码。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
31
32**示例:**
33
34  ```ts
35import { UIAbility, AbilityConstant, EnvironmentCallback, Want } from '@kit.AbilityKit';
36import { BusinessError } from '@kit.BasicServicesKit';
37
38export default class EntryAbility extends UIAbility {
39  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
40    let envCallback: EnvironmentCallback = {
41      onConfigurationUpdated(config) {
42        console.info(`envCallback onConfigurationUpdated success: ${JSON.stringify(config)}`);
43        let language = config.language;
44        let colorMode = config.colorMode;
45        let direction = config.direction;
46        let screenDensity = config.screenDensity;
47        let displayId = config.displayId;
48        let hasPointerDevice = config.hasPointerDevice;
49        let fontSizeScale = config.fontSizeScale;
50        let fontWeightScale = config.fontWeightScale;
51        let mcc = config.mcc;
52        let mnc = config.mnc;
53      },
54      onMemoryLevel(level) {
55        console.log('onMemoryLevel level: ${level}');
56      }
57    };
58    try {
59      let applicationContext = this.context.getApplicationContext();
60      let callbackId = applicationContext.on('environment', envCallback);
61      console.log(`callbackId: ${callbackId}`);
62    } catch (paramError) {
63      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
64    }
65  }
66}
67  ```
68
69