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<number>): 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<number> | 是 | 回调函数。当接口调用成功,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<number> 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<number> | 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<string>): 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<string> | 是 | 回调函数,当接口调用成功,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<string> 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<string> | 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<void>): 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<void> | 是 | 回调函数,当接口调用成功,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<void> 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<void> | 无返回结果的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