js-apis-system-parameter.md 8.1 KB
Newer Older
1
# @ohos.systemParameter (系统属性)
Z
zengyawen 已提交
2

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

zyjhandsome's avatar
zyjhandsome 已提交
6
> **说明:**
Z
zengyawen 已提交
7
> - 本模块接口从API version 9开始不再维护,建议使用新接口[`@ohos.systemParameterEnhance`](js-apis-system-parameterEnhance.md)替代。
Z
zengyawen 已提交
8
> - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
9
> - 本模块接口为系统接口。
10 11 12
> - 由于系统参数都是各个系统服务的内部信息和控制参数,每个系统参数都有各自不同的DAC和MAC访问控制权限,三方应用不能使用此类接口。


Z
zengyawen 已提交
13
## 导入模块
Z
zengyawen 已提交
14

Y
yichengzhao 已提交
15
```ts
C
fix ark  
chenshixu1 已提交
16
import systemparameter from '@ohos.systemparameter';
Z
zengyawen 已提交
17 18
```

C
cheng_jinsong 已提交
19
## systemparameter.getSync<sup>(deprecated)</sup>
Z
zengyawen 已提交
20

21
getSync(key: string, def?: string): string
Z
zengyawen 已提交
22

23
获取系统参数Key对应的值。
Z
zengyawen 已提交
24

C
chen_jie 已提交
25
**系统能力:** SystemCapability.Startup.SystemInfo
Z
zengyawen 已提交
26

Z
zengyawen 已提交
27 28
**参数:**

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

**返回值:**

Z
zengyawen 已提交
36 37
| 类型 | 说明 |
| -------- | -------- |
C
chengjinsong2 已提交
38
| string | 系统参数值。<br> 若key存在,返回设定的值。<br> 若key不存在且def有效,返回def;若未指定def或def无效(如undefined),返回空字符串。 |
Z
zengyawen 已提交
39 40 41

**示例:**

Y
yichengzhao 已提交
42
```ts
Z
zengyawen 已提交
43
try {
C
fix ark  
chenshixu1 已提交
44
    let info = systemparameter.getSync("const.ohos.apiversion");
Z
zengyawen 已提交
45
    console.log(JSON.stringify(info));
C
chengjinsong2 已提交
46
} catch(e) {
Z
zengyawen 已提交
47 48 49 50
    console.log("getSync unexpected error: " + e);
}
```

C
cheng_jinsong 已提交
51
## systemparameter.get<sup>(deprecated)</sup>
Z
zengyawen 已提交
52

53
get(key: string, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
54

55
获取系统参数Key对应的值。
Z
zengyawen 已提交
56

C
chen_jie 已提交
57
**系统能力:** SystemCapability.Startup.SystemInfo
Z
zengyawen 已提交
58

Z
zengyawen 已提交
59 60
**参数:**

Z
zengyawen 已提交
61 62
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
63
| key | string | 是 | 待查询的系统参数Key。 |
Z
zengyawen 已提交
64
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。 |
Z
zengyawen 已提交
65 66 67

**示例:**

Y
yichengzhao 已提交
68
```ts
Z
zengyawen 已提交
69 70
import { BusinessError } from '@ohos.base';

Z
zengyawen 已提交
71
try {
C
chenshixu1 已提交
72
    systemparameter.get("const.ohos.apiversion", (err: BusinessError, data: string) => {
Z
zengyawen 已提交
73 74 75 76 77
    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 已提交
78
} catch(e) {
Z
zengyawen 已提交
79 80 81 82
    console.log("get unexpected error: " + e);
}
```

C
cheng_jinsong 已提交
83
## systemparameter.get<sup>(deprecated)</sup>
Z
zengyawen 已提交
84

85
get(key: string, def: string, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
86

87
获取系统参数Key对应的值。
Z
zengyawen 已提交
88

C
chen_jie 已提交
89
**系统能力:** SystemCapability.Startup.SystemInfo
Z
zengyawen 已提交
90

Z
zengyawen 已提交
91 92
**参数:**

Z
zengyawen 已提交
93 94
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
95
| key | string | 是 | 待查询的系统参数Key。 |
Z
zengyawen 已提交
96 97
| def | string | 是 | 默认值。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。 |
Z
zengyawen 已提交
98 99 100

**示例:**

Y
yichengzhao 已提交
101
```ts
Z
zengyawen 已提交
102 103
import { BusinessError } from '@ohos.base';

Z
zengyawen 已提交
104
try {
C
chenshixu1 已提交
105
    systemparameter.get("const.ohos.apiversion", "default", (err: BusinessError, data: string) => {
Z
zengyawen 已提交
106 107 108 109 110 111
        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 已提交
112
} catch(e) {
Z
zengyawen 已提交
113 114 115 116
    console.log("get unexpected error:" + e)
}
```

C
cheng_jinsong 已提交
117
## systemparameter.get<sup>(deprecated)</sup>
Z
zengyawen 已提交
118

119
get(key: string, def?: string): Promise&lt;string&gt;
Z
zengyawen 已提交
120

121
获取系统参数Key对应的值。
Z
zengyawen 已提交
122

C
chen_jie 已提交
123
**系统能力:** SystemCapability.Startup.SystemInfo
Z
zengyawen 已提交
124

Z
zengyawen 已提交
125 126
**参数:**

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

**返回值:**

Z
zengyawen 已提交
134 135 136
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;string&gt; | Promise示例,用于异步获取结果。 |
Z
zengyawen 已提交
137 138 139

**示例:**

Y
yichengzhao 已提交
140
```ts
Z
zengyawen 已提交
141 142
import { BusinessError } from '@ohos.base';

Z
zengyawen 已提交
143
try {
C
fix ark  
chenshixu1 已提交
144
    let p = systemparameter.get("const.ohos.apiversion");
C
chenshixu1 已提交
145
    p.then((value: string) => {
Z
zengyawen 已提交
146
        console.log("get test.parameter.key success: " + value);
C
chenshixu1 已提交
147
    }).catch((err: BusinessError) => {
Z
zengyawen 已提交
148 149
        console.log("get test.parameter.key error: " + err.code);
    });
C
chengjinsong2 已提交
150
} catch(e) {
Z
zengyawen 已提交
151 152 153 154
    console.log("get unexpected error: " + e);
}
```

C
cheng_jinsong 已提交
155
## systemparameter.setSync<sup>(deprecated)</sup>
Z
zengyawen 已提交
156

157
setSync(key: string, value: string): void
Z
zengyawen 已提交
158

159
设置系统参数Key对应的值。
Z
zengyawen 已提交
160

C
chen_jie 已提交
161
**系统能力:** SystemCapability.Startup.SystemInfo
Z
zengyawen 已提交
162

Z
zengyawen 已提交
163 164
**参数:**

Z
zengyawen 已提交
165 166
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
167 168
| key | string | 是 | 待设置的系统参数Key。 |
| value | string | 是 | 待设置的系统参数值。 |
Z
zengyawen 已提交
169

zyjhandsome's avatar
zyjhandsome 已提交
170
> **说明:**
171
> - 此接口只能用于系统应用的参数设置。
Z
zengyawen 已提交
172
> - 所授权的系统应用需要配置对应selinux和dac规则,具体配置方法请参照系统参数指导文档:[系统参数](../../../device-dev/subsystems/subsys-boot-init-sysparam.md)。
173 174


Z
zengyawen 已提交
175 176
**示例:**

Y
yichengzhao 已提交
177
```ts
Z
zengyawen 已提交
178
try {
179
    systemparameter.setSync("test.parameter.key", "default");
C
chengjinsong2 已提交
180
} catch(e) {
Z
zengyawen 已提交
181 182 183 184
    console.log("set unexpected error: " + e);
}
```

C
cheng_jinsong 已提交
185
## systemparameter.set<sup>(deprecated)</sup>
Z
zengyawen 已提交
186

187
set(key: string, value: string, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
188

189
设置系统参数Key对应的值。
Z
zengyawen 已提交
190

C
chen_jie 已提交
191
**系统能力:** SystemCapability.Startup.SystemInfo
Z
zengyawen 已提交
192

Z
zengyawen 已提交
193 194
**参数:**

Z
zengyawen 已提交
195 196
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
197 198
| key | string | 是 | 待设置的系统参数Key。 |
| value | string | 是 | 待设置的系统参数值。 |
Z
zengyawen 已提交
199
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
Z
zengyawen 已提交
200

zyjhandsome's avatar
zyjhandsome 已提交
201
> **说明:**
202
> - 此接口只能用于系统应用的参数设置。
Z
zengyawen 已提交
203
> - 所授权的系统应用需要配置对应selinux和dac规则,具体配置方法请参照系统参数指导文档:[系统参数](../../../device-dev/subsystems/subsys-boot-init-sysparam.md)。
204

Z
zengyawen 已提交
205 206
**示例:**

Y
yichengzhao 已提交
207
```ts
Z
zengyawen 已提交
208 209
import { BusinessError } from '@ohos.base';

Z
zengyawen 已提交
210
try {
C
chenshixu1 已提交
211
    systemparameter.set("test.parameter.key", "testValue",  (err: BusinessError, data: void) =>{
Z
zengyawen 已提交
212 213 214 215 216
    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 已提交
217
} catch(e) {
Z
zengyawen 已提交
218 219 220 221
    console.log("set unexpected error: " + e);
}
```

C
cheng_jinsong 已提交
222
## systemparameter.set<sup>(deprecated)</sup>
Z
zengyawen 已提交
223

224
set(key: string, value: string): Promise&lt;void&gt;
Z
zengyawen 已提交
225

226
设置系统参数Key对应的值。
Z
zengyawen 已提交
227

C
chen_jie 已提交
228
**系统能力:** SystemCapability.Startup.SystemInfo
Z
zengyawen 已提交
229

Z
zengyawen 已提交
230 231
**参数:**

Z
zengyawen 已提交
232 233
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
234 235
| key | string | 是 | 待设置的系统参数Key。 |
| value| string | 是 | 待设置的系统参数值。 |
Z
zengyawen 已提交
236 237 238

**返回值:**

Z
zengyawen 已提交
239 240
| 类型 | 说明 |
| -------- | -------- |
241
| Promise&lt;void&gt; | Promise示例,用于异步获取结果。 |
Z
zengyawen 已提交
242

zyjhandsome's avatar
zyjhandsome 已提交
243
> **说明:**
244
> - 此接口只能用于系统应用的参数设置。
Z
zengyawen 已提交
245
> - 所授权的系统应用需要配置对应selinux和dac规则,具体配置方法请参照系统参数指导文档:[系统参数](../../../device-dev/subsystems/subsys-boot-init-sysparam.md)
246

Z
zengyawen 已提交
247 248
**示例:**

Y
yichengzhao 已提交
249
```ts
Z
zengyawen 已提交
250 251
import { BusinessError } from '@ohos.base';

Z
zengyawen 已提交
252
try {
C
fix ark  
chenshixu1 已提交
253
    let p = systemparameter.set("test.parameter.key", "testValue");
C
chenshixu1 已提交
254
    p.then((value: void) => {
Z
zengyawen 已提交
255
        console.log("set test.parameter.key success: " + value);
C
chenshixu1 已提交
256
    }).catch((err: BusinessError) => {
Z
zengyawen 已提交
257 258
        console.log(" set test.parameter.key error: " + err.code);
    });
C
chengjinsong2 已提交
259
} catch(e) {
Z
zengyawen 已提交
260 261
    console.log("set unexpected error: " + e);
}
C
cheng_jinsong 已提交
262
```