js-apis-system-parameterEnhance.md 10.6 KB
Newer Older
H
handyohos 已提交
1
# @ohos.systemParameterEnhance (系统参数)
C
chengjinsong2 已提交
2 3

系统参数(SystemParameter)是为各系统服务提供的简单易用的键值对访问接口,各个系统服务可以定义系统参数来描述该服务的状态信息,或者通过系统参数来改变系统服务的行为。其基本操作原语为get和set,通过get可以查询系统参数的值,通过set可以修改系统参数的值。
Z
zengyawen 已提交
4
详细的系统参数设计原理及定义可参考[系统参数](../../../device-dev/subsystems/subsys-boot-init-sysparam.md)
5

6 7
> **说明:**
>
C
chengjinsong2 已提交
8
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
9
> - 本模块接口为系统接口。
C
chengjinsong2 已提交
10 11 12 13 14
> - 由于系统参数都是各个系统服务的内部信息和控制参数,每个系统参数都有各自不同的DAC和MAC访问控制权限,三方应用不能使用此类接口。

## 导入模块

```ts
C
fix ark  
chenshixu1 已提交
15
import systemparameter from '@ohos.systemParameterEnhance';
C
chengjinsong2 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
```

## systemparameter.getSync

getSync(key: string, def?: string): string

获取系统参数Key对应的值。

**系统能力:** SystemCapability.Startup.SystemInfo

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待查询的系统参数Key。 |
C
chengjinsong2 已提交
31
| def | string | 否 | def为所要获取的系统参数的默认值 <br> def为可选参数,仅当系统参数不存在时生效 <br> def可以传undefined或自定义的任意值 |
C
chengjinsong2 已提交
32 33 34 35 36

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
C
chengjinsong2 已提交
37
| string | 系统参数值 <br> 若key存在,返回设定的值。 <br> 若key不存在且def有效,返回def;若未指定def或def无效(如undefined),抛异常。 |
C
chengjinsong2 已提交
38

39 40 41 42
**错误码**

| 错误码ID | 错误信息                                                     |
| -------- | ------------------------------------------------------------ |
Z
zhongning5 已提交
43 44 45
| 14700101 | if key is not found                                          |
| 14700103 | if permission denied                                         |
| 14700104 | if system internal error                                     |
46 47 48

以上错误码详细介绍请参考[errorcode-system-parameterV9](../errorcodes/errorcode-system-parameterV9.md)

C
chengjinsong2 已提交
49 50 51 52
**示例:**

```ts
try {
C
fix ark  
chenshixu1 已提交
53
    let info = systemparameter.getSync("const.ohos.apiversion");
C
chengjinsong2 已提交
54
    console.log(JSON.stringify(info));
C
chengjinsong2 已提交
55
} catch(e) {
C
chengjinsong2 已提交
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
    console.log("getSync unexpected error: " + e);
}
```

## systemparameter.get

get(key: string, callback: AsyncCallback&lt;string&gt;): void

获取系统参数Key对应的值。

**系统能力:** SystemCapability.Startup.SystemInfo

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待查询的系统参数Key。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。 |

75 76 77 78
**错误码**

| 错误码ID | 错误信息                                                     |
| -------- | ------------------------------------------------------------ |
Z
zhongning5 已提交
79 80 81
| 14700101 | if key is not found                                          |
| 14700103 | if permission denied                                         |
| 14700104 | if system internal error                                     |
82 83 84

以上错误码详细介绍请参考[errorcode-system-parameterV9](../errorcodes/errorcode-system-parameterV9.md)

C
chengjinsong2 已提交
85 86 87
**示例:**

```ts
Z
zengyawen 已提交
88 89
import { BusinessError } from '@ohos.base';

C
chengjinsong2 已提交
90
try {
C
chenshixu1 已提交
91
    systemparameter.get("const.ohos.apiversion", (err: BusinessError, data: string) => {
C
chengjinsong2 已提交
92 93 94 95 96
    if (err == undefined) {
        console.log("get test.parameter.key value success:" + data)
    } else {
        console.log(" get test.parameter.key value err:" + err.code)
    }});
C
chengjinsong2 已提交
97
} catch(e) {
C
chengjinsong2 已提交
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
    console.log("get unexpected error: " + e);
}
```

## systemparameter.get

get(key: string, def: string, callback: AsyncCallback&lt;string&gt;): void

获取系统参数Key对应的值。

**系统能力:** SystemCapability.Startup.SystemInfo

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待查询的系统参数Key。 |
| def | string | 是 | 默认值。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。 |

118 119 120 121
**错误码**

| 错误码ID | 错误信息                                                     |
| -------- | ------------------------------------------------------------ |
Z
zhongning5 已提交
122 123 124
| 14700101 | if key is not found                                          |
| 14700103 | if permission denied                                         |
| 14700104 | if system internal error                                     |
125 126 127

以上错误码详细介绍请参考[errorcode-system-parameterV9](../errorcodes/errorcode-system-parameterV9.md)

C
chengjinsong2 已提交
128 129 130
**示例:**

```ts
Z
zengyawen 已提交
131 132
import { BusinessError } from '@ohos.base';

C
chengjinsong2 已提交
133
try {
C
chenshixu1 已提交
134
    systemparameter.get("const.ohos.apiversion", "default", (err: BusinessError, data: string) => {
C
chengjinsong2 已提交
135 136 137 138 139 140
        if (err == undefined) {
            console.log("get test.parameter.key value success:" + data)
        } else {
            console.log(" get test.parameter.key value err:" + err.code)
        }
    });
C
chengjinsong2 已提交
141
} catch(e) {
C
chengjinsong2 已提交
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
    console.log("get unexpected error:" + e)
}
```

## systemparameter.get

get(key: string, def?: string): Promise&lt;string&gt;

获取系统参数Key对应的值。

**系统能力:** SystemCapability.Startup.SystemInfo

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待查询的系统参数Key。 |
C
chengjinsong2 已提交
159
| def | string | 否 | def为所要获取的系统参数的默认值 <br> def为可选参数,仅当系统参数不存在时生效 <br> def可以传undefined或自定义的任意值 |
C
chengjinsong2 已提交
160 161 162 163 164 165 166

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;string&gt; | Promise示例,用于异步获取结果。 |

167 168 169 170
**错误码**

| 错误码ID | 错误信息                                                     |
| -------- | ------------------------------------------------------------ |
Z
zhongning5 已提交
171 172 173
| 14700101 | if key is not found                                          |
| 14700103 | if permission denied                                         |
| 14700104 | if system internal error                                     |
174 175 176

以上错误码详细介绍请参考[errorcode-system-parameterV9](../errorcodes/errorcode-system-parameterV9.md)

C
chengjinsong2 已提交
177 178 179
**示例:**

```ts
Z
zengyawen 已提交
180 181
import { BusinessError } from '@ohos.base';

C
chengjinsong2 已提交
182
try {
C
fix ark  
chenshixu1 已提交
183
    let p = systemparameter.get("const.ohos.apiversion");
C
chenshixu1 已提交
184
    p.then((value: string) => {
C
chengjinsong2 已提交
185
        console.log("get test.parameter.key success: " + value);
C
chenshixu1 已提交
186
    }).catch((err: BusinessError) => {
C
chengjinsong2 已提交
187 188
        console.log("get test.parameter.key error: " + err.code);
    });
C
chengjinsong2 已提交
189
} catch(e) {
C
chengjinsong2 已提交
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
    console.log("get unexpected error: " + e);
}
```

## systemparameter.setSync

setSync(key: string, value: string): void

设置系统参数Key对应的值。

**系统能力:** SystemCapability.Startup.SystemInfo

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待设置的系统参数Key。 |
| value | string | 是 | 待设置的系统参数值。 |

209 210 211 212
**错误码**

| 错误码ID | 错误信息                                                     |
| -------- | ------------------------------------------------------------ |
Z
zhongning5 已提交
213 214 215
| 14700102 | if value is invalid                                          |
| 14700103 | if permission denied                                         |
| 14700104 | if system internal error                                     |
216 217 218

以上错误码详细介绍请参考[errorcode-system-parameterV9](../errorcodes/errorcode-system-parameterV9.md)

C
chengjinsong2 已提交
219 220 221
**示例:**

```ts
Z
zengyawen 已提交
222 223
import { BusinessError } from '@ohos.base';

C
chengjinsong2 已提交
224 225
try {
    systemparameter.setSync("test.parameter.key", "default");
C
chengjinsong2 已提交
226
} catch(e) {
C
chengjinsong2 已提交
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246
    console.log("set unexpected error: " + e);
}
```

## systemparameter.set

set(key: string, value: string, callback: AsyncCallback&lt;void&gt;): void

设置系统参数Key对应的值。

**系统能力:** SystemCapability.Startup.SystemInfo

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待设置的系统参数Key。 |
| value | string | 是 | 待设置的系统参数值。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

247 248 249 250
**错误码**

| 错误码ID | 错误信息                                                     |
| -------- | ------------------------------------------------------------ |
Z
zhongning5 已提交
251 252 253
| 14700102 | if value is invalid                                          |
| 14700103 | if permission denied                                         |
| 14700104 | if system internal error                                     |
254 255 256

以上错误码详细介绍请参考[errorcode-system-parameterV9](../errorcodes/errorcode-system-parameterV9.md)

C
chengjinsong2 已提交
257 258 259
**示例:**

```ts
Z
zengyawen 已提交
260 261
import { BusinessError } from '@ohos.base';

C
chengjinsong2 已提交
262
try {
C
chenshixu1 已提交
263
    systemparameter.set("test.parameter.key", "testValue", (err: BusinessError, data: void) => {
C
chengjinsong2 已提交
264 265 266 267 268
    if (err == undefined) {
        console.log("set test.parameter.key value success :" + data)
    } else {
        console.log("set test.parameter.key value err:" + err.code)
    }});
C
chengjinsong2 已提交
269
} catch(e) {
C
chengjinsong2 已提交
270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294
    console.log("set unexpected error: " + e);
}
```

## systemparameter.set

set(key: string, value: string): Promise&lt;void&gt;

设置系统参数Key对应的值。

**系统能力:** SystemCapability.Startup.SystemInfo

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待设置的系统参数Key。 |
| value| string | 是 | 待设置的系统参数值。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise示例,用于异步获取结果。 |

295 296 297 298
**错误码**

| 错误码ID | 错误信息                                                     |
| -------- | ------------------------------------------------------------ |
Z
zhongning5 已提交
299 300 301
| 14700102 | if value is invalid                                          |
| 14700103 | if permission denied                                         |
| 14700104 | if system internal error                                     |
302 303 304

以上错误码详细介绍请参考[errorcode-system-parameterV9](../errorcodes/errorcode-system-parameterV9.md)

C
chengjinsong2 已提交
305 306 307
**示例:**

```ts
Z
zengyawen 已提交
308 309
import { BusinessError } from '@ohos.base';

C
chengjinsong2 已提交
310
try {
C
fix ark  
chenshixu1 已提交
311
    let p = systemparameter.set("test.parameter.key", "testValue");
C
chenshixu1 已提交
312
    p.then((value: void) => {
C
chengjinsong2 已提交
313
        console.log("set test.parameter.key success: " + value);
C
chenshixu1 已提交
314
    }).catch((err: BusinessError) => {
C
chengjinsong2 已提交
315 316
        console.log(" set test.parameter.key error: " + err.code);
    });
C
chengjinsong2 已提交
317
} catch(e) {
C
chengjinsong2 已提交
318 319 320
    console.log("set unexpected error: " + e);
}
```