js-apis-system-parameter.md 7.4 KB
Newer Older
1
# 系统参数
Z
zengyawen 已提交
2

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

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


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

Y
yichengzhao 已提交
14
```ts
15
import systemparameter from '@ohos.systemparameter'
Z
zengyawen 已提交
16 17
```

18
## systemparameter.getSync
Z
zengyawen 已提交
19

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

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

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

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

Z
zengyawen 已提交
28 29
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
30
| key | string | 是 | 待查询的系统参数Key。 |
Z
zengyawen 已提交
31
| def | string | 否 | 默认值。 |
Z
zengyawen 已提交
32 33 34

**返回值:**

Z
zengyawen 已提交
35 36
| 类型 | 说明 |
| -------- | -------- |
37
| string | 系统参数值,若key不存在,返回默认值。若未指定默认值,返回空字符串。 |
Z
zengyawen 已提交
38 39 40

**示例:**

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

50
## systemparameter.get
Z
zengyawen 已提交
51

52
get(key: string, callback: AsyncCallback<string>): void
Z
zengyawen 已提交
53

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

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

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

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

**示例:**

Y
yichengzhao 已提交
67
```ts
Z
zengyawen 已提交
68
try {
69
    systemparameter.get("const.ohos.apiversion", function (err, data) {
Z
zengyawen 已提交
70 71 72 73 74 75 76 77 78 79
    if (err == undefined) {
        console.log("get test.parameter.key value success:" + data)
    } else {
        console.log(" get test.parameter.key value err:" + err.code)
    }});
}catch(e){
    console.log("get unexpected error: " + e);
}
```

80
## systemparameter.get
Z
zengyawen 已提交
81

82
get(key: string, def: string, callback: AsyncCallback<string>): void
Z
zengyawen 已提交
83

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

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

Z
zengyawen 已提交
88 89
**参数:**

Z
zengyawen 已提交
90 91
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
92
| key | string | 是 | 待查询的系统参数Key。 |
Z
zengyawen 已提交
93 94
| def | string | 是 | 默认值。 |
| callback | AsyncCallback<string> | 是 | 回调函数。 |
Z
zengyawen 已提交
95 96 97

**示例:**

Y
yichengzhao 已提交
98
```ts
Z
zengyawen 已提交
99
try {
100
    systemparameter.get("const.ohos.apiversion", "default", function (err, data) {
Z
zengyawen 已提交
101 102 103 104 105 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)
        }
    });
}catch(e){
    console.log("get unexpected error:" + e)
}
```

112
## systemparameter.get
Z
zengyawen 已提交
113

114
get(key: string, def?: string): Promise<string>
Z
zengyawen 已提交
115

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

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

Z
zengyawen 已提交
120 121
**参数:**

Z
zengyawen 已提交
122 123
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
124
| key | string | 是 | 待查询的系统参数Key。 |
Z
zengyawen 已提交
125
| def | string | 否 | 默认值。 |
Z
zengyawen 已提交
126 127 128

**返回值:**

Z
zengyawen 已提交
129 130 131
| 类型 | 说明 |
| -------- | -------- |
| Promise<string> | Promise示例,用于异步获取结果。 |
Z
zengyawen 已提交
132 133 134

**示例:**

Y
yichengzhao 已提交
135
```ts
Z
zengyawen 已提交
136
try {
137
    var p = systemparameter.get("const.ohos.apiversion");
Z
zengyawen 已提交
138 139 140 141 142 143 144 145 146 147
    p.then(function (value) {
        console.log("get test.parameter.key success: " + value);
    }).catch(function (err) {
        console.log("get test.parameter.key error: " + err.code);
    });
}catch(e){
    console.log("get unexpected error: " + e);
}
```

148
## systemparameter.setSync
Z
zengyawen 已提交
149

150
setSync(key: string, value: string): void
Z
zengyawen 已提交
151

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

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

Z
zengyawen 已提交
156 157
**参数:**

Z
zengyawen 已提交
158 159
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
160 161
| key | string | 是 | 待设置的系统参数Key。 |
| value | string | 是 | 待设置的系统参数值。 |
Z
zengyawen 已提交
162

163 164 165
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 此接口只能用于系统应用的参数设置。
> - 所授权的系统应用需要配置对应selinux和dac规则,具体配置方法请参照系统参数指导文档:[系统参数](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md)。
166 167


Z
zengyawen 已提交
168 169
**示例:**

Y
yichengzhao 已提交
170
```ts
Z
zengyawen 已提交
171
try {
172
    systemparameter.setSync("test.parameter.key", "default");
Z
zengyawen 已提交
173 174 175 176 177
}catch(e){
    console.log("set unexpected error: " + e);
}
```

178
## systemparameter.set
Z
zengyawen 已提交
179

180
set(key: string, value: string, callback: AsyncCallback<void>): void
Z
zengyawen 已提交
181

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

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

Z
zengyawen 已提交
186 187
**参数:**

Z
zengyawen 已提交
188 189
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
190 191
| key | string | 是 | 待设置的系统参数Key。 |
| value | string | 是 | 待设置的系统参数值。 |
Z
zengyawen 已提交
192
| callback | AsyncCallback<void> | 是 | 回调函数。 |
Z
zengyawen 已提交
193

194 195 196
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 此接口只能用于系统应用的参数设置。
> - 所授权的系统应用需要配置对应selinux和dac规则,具体配置方法请参照系统参数指导文档:[系统参数](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md)。
197

Z
zengyawen 已提交
198 199
**示例:**

Y
yichengzhao 已提交
200
```ts
Z
zengyawen 已提交
201
try {
202
    systemparameter.set("test.parameter.key", "testValue", function (err, data) {
Z
zengyawen 已提交
203 204 205 206 207 208 209 210 211 212
    if (err == undefined) {
        console.log("set test.parameter.key value success :" + data)
    } else {
        console.log("set test.parameter.key value err:" + err.code)
    }});
}catch(e){
    console.log("set unexpected error: " + e);
}
```

213
## systemparameter.set
Z
zengyawen 已提交
214

215
set(key: string, value: string): Promise<void>
Z
zengyawen 已提交
216

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

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

Z
zengyawen 已提交
221 222
**参数:**

Z
zengyawen 已提交
223 224
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
225 226
| key | string | 是 | 待设置的系统参数Key。 |
| value| string | 是 | 待设置的系统参数值。 |
Z
zengyawen 已提交
227 228 229

**返回值:**

Z
zengyawen 已提交
230 231
| 类型 | 说明 |
| -------- | -------- |
232
| Promise<void> | Promise示例,用于异步获取结果。 |
Z
zengyawen 已提交
233

234 235 236
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - 此接口只能用于系统应用的参数设置。
> - 所授权的系统应用需要配置对应selinux和dac规则,具体配置方法请参照系统参数指导文档:[系统参数](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md)
237

Z
zengyawen 已提交
238 239
**示例:**

Y
yichengzhao 已提交
240
```ts
Z
zengyawen 已提交
241
try {
242
    var p = systemparameter.set("test.parameter.key", "testValue");
Z
zengyawen 已提交
243 244 245 246 247 248 249 250
    p.then(function (value) {
        console.log("set test.parameter.key success: " + value);
    }).catch(function (err) {
        console.log(" set test.parameter.key error: " + err.code);
    });
}catch(e){
    console.log("set unexpected error: " + e);
}
251
```