• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.enterprise.deviceSettings (设备设置管理)(系统接口)
2
3本模块提供企业设备设置能力,包括获取设备息屏时间等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10>
11> 本模块接口仅对[设备管理应用](../../mdm/mdm-kit-guide.md#功能介绍)开放,需将[设备管理应用激活](js-apis-enterprise-adminManager-sys.md#adminmanagerenableadmin)后调用,实现相应功能。
12>
13> 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.enterprise.deviceSettings](js-apis-enterprise-deviceSettings.md)。
14
15## 导入模块
16
17```ts
18import { deviceSettings } from '@kit.MDMKit';
19```
20
21## deviceSettings.setScreenOffTime<sup>11+</sup>
22
23setScreenOffTime(admin: Want, time: number): void
24
25设置设备息屏时间。
26
27**需要权限:** ohos.permission.ENTERPRISE_SET_SCREENOFF_TIME
28
29**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
30
31**参数:**
32
33| 参数名      | 类型                                       | 必填   | 说明                       |
34| -------- | ---------------------------------------- | ---- | ------------------------------- |
35| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。     |
36| time | number            | 是    | 设备息屏时间(单位:毫秒,建议参数与设备可选息屏时间保持一致)。       |
37
38**错误码**:
39
40以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
41
42| 错误码ID | 错误信息                                                                       |
43| ------- | ---------------------------------------------------------------------------- |
44| 9200001 | The application is not an administrator application of the device.            |
45| 9200002 | The administrator application does not have permission to manage the device. |
46| 201 | Permission verification failed. The application does not have the permission required to call the API. |
47| 202 | Permission verification failed. A non-system application calls a system API. |
48| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
49
50**示例:**
51
52```ts
53import { Want } from '@kit.AbilityKit';
54let wantTemp: Want = {
55  bundleName: 'com.example.myapplication',
56  abilityName: 'EntryAbility',
57};
58try {
59  deviceSettings.setScreenOffTime(wantTemp, 30000);
60  console.info(`Succeeded in setting screen off time`);
61} catch(err) {
62  console.error(`Failed to set screen off time. Code: ${err.code}, message: ${err.message}`);
63}
64```
65
66## deviceSettings.getScreenOffTime
67
68getScreenOffTime(admin: Want, callback: AsyncCallback&lt;number&gt;): void
69
70获取设备息屏时间,使用callback异步回调。
71
72**需要权限:** ohos.permission.ENTERPRISE_GET_SETTINGS
73
74**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
75
76**参数:**
77
78| 参数名      | 类型                                       | 必填   | 说明                       |
79| -------- | ---------------------------------------- | ---- | ------------------------------- |
80| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。            |
81| callback | AsyncCallback&lt;number&gt;            | 是    | 回调函数。当接口调用成功,err为null,data为设备息屏时间(单位:毫秒),否则err为错误对象。       |
82
83**错误码**:
84
85以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
86
87| 错误码ID | 错误信息                                                                       |
88| ------- | ---------------------------------------------------------------------------- |
89| 9200001 | The application is not an administrator application of the device.            |
90| 9200002 | The administrator application does not have permission to manage the device. |
91| 201 | Permission verification failed. The application does not have the permission required to call the API. |
92| 202 | Permission verification failed. A non-system application calls a system API. |
93| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
94
95**示例:**
96
97```ts
98import { Want } from '@kit.AbilityKit';
99let wantTemp: Want = {
100  bundleName: 'com.example.myapplication',
101  abilityName: 'EntryAbility',
102};
103
104deviceSettings.getScreenOffTime(wantTemp, (err, result) => {
105  if (err) {
106    console.error(`Failed to get screen off time. Code: ${err.code}, message: ${err.message}`);
107    return;
108  }
109  console.info(`Succeeded in getting screen off time, result : ${result}`);
110});
111```
112
113## deviceSettings.getScreenOffTime
114
115getScreenOffTime(admin: Want): Promise&lt;number&gt;
116
117获取设备息屏时间,使用Promise异步回调。
118
119**需要权限:** ohos.permission.ENTERPRISE_GET_SETTINGS
120
121**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
122
123**参数:**
124
125| 参数名 | 类型                                                    | 必填 | 说明                   |
126| ------ | ------------------------------------------------------- | ---- | ---------------------- |
127| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。 |
128
129**返回值:**
130
131| 类型                   | 说明                      |
132| --------------------- | ------------------------- |
133| Promise&lt;number&gt; | Promise对象,返回设备息屏时间(单位:毫秒)。  |
134
135**错误码**:
136
137以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
138
139| 错误码ID | 错误信息                                                                     |
140| ------- | ---------------------------------------------------------------------------- |
141| 9200001 | The application is not an administrator application of the device.            |
142| 9200002 | The administrator application does not have permission to manage the device. |
143| 201 | Permission verification failed. The application does not have the permission required to call the API. |
144| 202 | Permission verification failed. A non-system application calls a system API. |
145| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
146
147**示例:**
148
149```ts
150import { Want } from '@kit.AbilityKit';
151import { BusinessError } from '@kit.BasicServicesKit';
152let wantTemp: Want = {
153  bundleName: 'com.example.myapplication',
154  abilityName: 'EntryAbility',
155};
156
157deviceSettings.getScreenOffTime(wantTemp).then((result) => {
158  console.info(`Succeeded in getting screen off time, result : ${result}`);
159}).catch((err: BusinessError) => {
160  console.error(`Failed to get screen off time. Code: ${err.code}, message: ${err.message}`);
161});
162```
163
164## deviceSettings.installUserCertificate
165
166installUserCertificate(admin: Want, certificate: CertBlob, callback: AsyncCallback&lt;string&gt;): void
167
168安装用户证书,使用callback异步回调。
169
170**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
171
172**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
173
174**参数:**
175
176| 参数名      | 类型                                       | 必填   | 说明                       |
177| -------- | ---------------------------------------- | ---- | ------------------------------- |
178| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。            |
179| certificate    | [CertBlob](#certblob)     | 是    | 证书信息。证书文件应放在应用沙箱路径等应用有权限访问的路径下。 |
180| callback | AsyncCallback&lt;string&gt;            | 是    | 回调函数,当接口调用成功,err为null,否则为错误对象。      |
181
182**错误码**:
183
184以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
185
186| 错误码ID | 错误信息                                                                       |
187| ------- | ---------------------------------------------------------------------------- |
188| 9200001 | The application is not an administrator application of the device.            |
189| 9200002 | The administrator application does not have permission to manage the device. |
190| 9201001 | Failed to manage the certificate. |
191| 201 | Permission verification failed. The application does not have the permission required to call the API. |
192| 202 | Permission verification failed. A non-system application calls a system API. |
193| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
194
195**示例:**
196
197```ts
198import { common, Want } from '@kit.AbilityKit';
199import { BusinessError } from '@kit.BasicServicesKit';
200let wantTemp: Want = {
201  bundleName: 'com.example.myapplication',
202  abilityName: 'EntryAbility',
203};
204let certFileArray: Uint8Array = new Uint8Array();
205// The variable context needs to be initialized in MainAbility's onCreate callback function
206// test.cer needs to be placed in the rawfile directory
207const context = this.getUIContext().getHostContext() as common.UIAbilityContext;
208context.resourceManager.getRawFileContent("test.cer").then((value) => {
209  certFileArray = value;
210  deviceSettings.installUserCertificate(wantTemp, { inData: certFileArray, alias: "cert_alias_xts" }, (err, result) => {
211    if (err) {
212      console.error(`Failed to install user certificate. Code: ${err.code}, message: ${err.message}`);
213    } else {
214      console.info(`Succeeded in installing user certificate, result : ${JSON.stringify(result)}`);
215    }
216  });
217}).catch((error: BusinessError) => {
218  console.error(`Failed to get row file content. message: ${error.message}`);
219  return;
220});
221```
222
223## deviceSettings.installUserCertificate
224
225installUserCertificate(admin: Want, certificate: CertBlob): Promise&lt;string&gt;
226
227安装用户证书,使用Promise异步回调。
228
229**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
230
231**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
232
233**参数:**
234
235| 参数名   | 类型                                  | 必填   | 说明      |
236| ----- | ----------------------------------- | ---- | ------- |
237| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是    | 企业设备管理扩展组件。 |
238| certificate    | [CertBlob](#certblob)     | 是    | 证书信息。证书文件应放在应用沙箱路径等应用有权限访问的路径下。 |
239
240**返回值:**
241
242| 类型                   | 说明                      |
243| --------------------- | ------------------------- |
244| Promise&lt;string&gt; | Promise对象,返回当前证书安装后的uri,用于卸载证书。 |
245
246**错误码**:
247
248以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
249
250| 错误码ID | 错误信息                                                                     |
251| ------- | ---------------------------------------------------------------------------- |
252| 9200001 | The application is not an administrator application of the device.            |
253| 9200002 | The administrator application does not have permission to manage the device. |
254| 9201001 | Failed to manage the certificate. |
255| 201 | Permission verification failed. The application does not have the permission required to call the API. |
256| 202 | Permission verification failed. A non-system application calls a system API. |
257| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
258
259**示例:**
260
261```ts
262import { common, Want } from '@kit.AbilityKit';
263import { BusinessError } from '@kit.BasicServicesKit';
264let wantTemp: Want = {
265  bundleName: 'com.example.myapplication',
266  abilityName: 'EntryAbility',
267};
268let certFileArray: Uint8Array = new Uint8Array();
269// The variable context needs to be initialized in MainAbility's onCreate callback function
270// test.cer needs to be placed in the rawfile directory
271const context = this.getUIContext().getHostContext() as common.UIAbilityContext;
272context.resourceManager.getRawFileContent("test.cer").then((value) => {
273  certFileArray = value
274  deviceSettings.installUserCertificate(wantTemp, { inData: certFileArray, alias: "cert_alias_xts" })
275    .then((result) => {
276      console.info(`Succeeded in installing user certificate, result : ${JSON.stringify(result)}`);
277    }).catch((err: BusinessError) => {
278    console.error(`Failed to install user certificate. Code: ${err.code}, message: ${err.message}`);
279  })
280}).catch((error: BusinessError) => {
281  console.error(`Failed to get row file content. message: ${error.message}`);
282  return;
283});
284```
285
286## CertBlob
287
288证书信息。
289
290**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
291
292| 名称         | 类型     | 必填 | 说明                            |
293| ----------- | --------| ----- | ------------------------------- |
294| inData | Uint8Array | 是 | 证书的二进制内容。 |
295| alias | string | 是 | 证书别名。 |
296
297## deviceSettings.uninstallUserCertificate
298
299uninstallUserCertificate(admin: Want, certUri: string, callback: AsyncCallback&lt;void&gt;): void
300
301卸载用户证书,使用callback异步回调。
302
303**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
304
305**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
306
307**参数:**
308
309| 参数名      | 类型                                       | 必填   | 说明                       |
310| -------- | ---------------------------------------- | ---- | ------------------------------- |
311| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。            |
312| certUri    | string    | 是    | 证书uri,由安装用户证书接口[installUserCertificate](#devicesettingsinstallusercertificate)设置返回。 |
313| callback | AsyncCallback&lt;void&gt;            | 是    | 回调函数,当接口调用成功,err为null,否则为错误对象。      |
314
315**错误码**:
316
317以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
318
319| 错误码ID | 错误信息                                                                       |
320| ------- | ---------------------------------------------------------------------------- |
321| 9200001 | The application is not an administrator application of the device.            |
322| 9200002 | The administrator application does not have permission to manage the device. |
323| 9201001 | Failed to manage the certificate. |
324| 201 | Permission verification failed. The application does not have the permission required to call the API. |
325| 202 | Permission verification failed. A non-system application calls a system API. |
326| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
327
328**示例:**
329
330```ts
331import { Want } from '@kit.AbilityKit';
332let wantTemp: Want = {
333  bundleName: 'com.example.myapplication',
334  abilityName: 'EntryAbility',
335};
336let aliasStr = "certName"
337deviceSettings.uninstallUserCertificate(wantTemp, aliasStr, (err) => {
338  if (err) {
339    console.error(`Failed to uninstall user certificate. Code: ${err.code}, message: ${err.message}`);
340    return;
341  }
342  console.info(`Succeeded in uninstalling user certificate`);
343});
344```
345
346## deviceSettings.uninstallUserCertificate
347
348uninstallUserCertificate(admin: Want, certUri: string): Promise&lt;void&gt;
349
350卸载用户证书,使用Promise异步回调。
351
352**需要权限:** ohos.permission.ENTERPRISE_MANAGE_CERTIFICATE
353
354**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
355
356**参数:**
357
358| 参数名   | 类型                                  | 必填   | 说明      |
359| ----- | ----------------------------------- | ---- | ------- |
360| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是    | 企业设备管理扩展组件。 |
361| certUri    | string     | 是    | 证书uri,由安装用户证书接口[installUserCertificate](#devicesettingsinstallusercertificate-1)设置返回。 |
362
363**返回值:**
364
365| 类型                   | 说明                      |
366| --------------------- | ------------------------- |
367| Promise&lt;void&gt; | 无返回结果的Promise对象。当卸载用户证书失败时会抛出错误对象。 |
368
369**错误码**:
370
371以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
372
373| 错误码ID | 错误信息                                                                     |
374| ------- | ---------------------------------------------------------------------------- |
375| 9200001 | The application is not an administrator application of the device.            |
376| 9200002 | The administrator application does not have permission to manage the device. |
377| 9201001 | Failed to manage the certificate. |
378| 201 | Permission verification failed. The application does not have the permission required to call the API. |
379| 202 | Permission verification failed. A non-system application calls a system API. |
380| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
381
382**示例:**
383
384```ts
385import { Want } from '@kit.AbilityKit';
386import { BusinessError } from '@kit.BasicServicesKit';
387let wantTemp: Want = {
388  bundleName: 'com.example.myapplication',
389  abilityName: 'EntryAbility',
390};
391let aliasStr = "certName"
392deviceSettings.uninstallUserCertificate(wantTemp, aliasStr).then(() => {
393  console.info(`Succeeded in uninstalling user certificate`);
394}).catch((err: BusinessError) => {
395  console.error(`Failed to uninstall user certificate. Code is ${err.code}, message is ${err.message}`);
396});
397```
398
399## deviceSettings.setPowerPolicy<sup>11+</sup>
400
401setPowerPolicy(admin: Want, powerScene: PowerScene, powerPolicy: PowerPolicy): void
402
403设置电源策略。
404
405**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SETTINGS
406
407**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
408
409**参数:**
410
411| 参数名      | 类型                                       | 必填   | 说明                       |
412| -------- | ---------------------------------------- | ---- | ------------------------------- |
413| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。            |
414| powerScene | [PowerScene](#powerscene11) | 是    | 电源策略场景,当前只支持超时场景。       |
415| powerPolicy | [PowerPolicy](#powerpolicy11) | 是    | 电源策略。       |
416
417**错误码**:
418
419以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
420
421| 错误码ID | 错误信息                                                                       |
422| ------- | ---------------------------------------------------------------------------- |
423| 9200001 | The application is not an administrator application of the device.            |
424| 9200002 | The administrator application does not have permission to manage the device. |
425| 201 | Permission verification failed. The application does not have the permission required to call the API. |
426| 202 | Permission verification failed. A non-system application calls a system API. |
427| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
428
429**示例:**
430
431```ts
432import { Want } from '@kit.AbilityKit';
433let wantTemp: Want = {
434  bundleName: 'com.example.myapplication',
435  abilityName: 'EntryAbility',
436};
437try {
438  let delayTime = 0;
439  let powerScene: deviceSettings.PowerScene = deviceSettings.PowerScene.TIME_OUT;
440  let powerPolicyAction: deviceSettings.PowerPolicyAction = deviceSettings.PowerPolicyAction.AUTO_SUSPEND;
441  let powerPolicy: deviceSettings.PowerPolicy = {powerPolicyAction, delayTime};
442  deviceSettings.setPowerPolicy(wantTemp, powerScene, powerPolicy);
443  console.info(`Succeeded in setting power polilcy`);
444} catch (err) {
445  console.error(`Failed to set power policy. Code: ${err.code}, message: ${err.message}`);
446}
447```
448
449## deviceSettings.getPowerPolicy<sup>11+</sup>
450
451getPowerPolicy(admin: Want, powerScene: PowerScene): PowerPolicy
452
453获取电源策略。
454
455**需要权限:** ohos.permission.ENTERPRISE_MANAGE_SETTINGS
456
457**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
458
459**参数:**
460
461| 参数名      | 类型                                       | 必填   | 说明                       |
462| -------- | ---------------------------------------- | ---- | ------------------------------- |
463| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 企业设备管理扩展组件。            |
464| powerScene | [PowerScene](#powerscene11) | 是    | 电源策略场景,当前只支持超时场景。       |
465
466**返回值:**
467
468| 类型   | 说明                                  | 说明                       |
469| ----- | ----------------------------------- |------------------------------- |
470| PowerPolicy | [PowerPolicy](#powerpolicy11) |   电源策略。       |
471
472**错误码**:
473
474以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
475
476| 错误码ID | 错误信息                                                                       |
477| ------- | ---------------------------------------------------------------------------- |
478| 9200001 | The application is not an administrator application of the device.            |
479| 9200002 | The administrator application does not have permission to manage the device. |
480| 201 | Permission verification failed. The application does not have the permission required to call the API. |
481| 202 | Permission verification failed. A non-system application calls a system API. |
482| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
483
484**示例:**
485
486```ts
487import { Want } from '@kit.AbilityKit';
488let wantTemp: Want = {
489  bundleName: 'com.example.myapplication',
490  abilityName: 'EntryAbility',
491};
492try {
493  let powerScene: deviceSettings.PowerScene = deviceSettings.PowerScene.TIME_OUT;
494  let powerPolicy: deviceSettings.PowerPolicy = deviceSettings.getPowerPolicy(wantTemp, powerScene);
495  console.info(`Succeeded in getting power polilcy ${JSON.stringify(powerPolicy)}`);
496} catch (err) {
497  console.error(`Failed to get power policy. Code: ${err.code}, message: ${err.message}`);
498}
499```
500
501## PowerPolicy<sup>11+</sup>
502
503电源策略。
504
505**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
506
507| 名称         | 类型     | 必填 | 说明                            |
508| ----------- | --------| ----- | ------------------------------- |
509| powerPolicyAction | [PowerPolicyAction](#powerpolicyaction11) | 是 | 执行电源策略的动作。 |
510| delayTime | number | 是 | 延迟时间。 |
511
512## PowerScene<sup>11+</sup>
513
514执行电源策略的场景。
515
516**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
517
518| 名称 | 值 | 说明 |
519| -------- | -------- | -------- |
520| TIME_OUT | 0 | 超时场景。 |
521
522## PowerPolicyAction<sup>11+</sup>
523
524执行电源策略的动作。
525
526**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
527
528| 名称 | 值 | 说明 |
529| -------- | -------- | -------- |
530| NONE | 0 | 不执行动作。 |
531| AUTO_SUSPEND | 1 | 自动进入睡眠。 |
532| FORCE_SUSPEND | 2 | 强制进入睡眠。 |
533| HIBERNATE | 3 | 进入休眠。(当前电源子系统暂不支持) |
534| SHUTDOWN | 4 | 关机。 |
535