1e41f4b71Sopenharmony_ci# @ohos.resourceschedule.deviceStandby (设备待机模块)(系统接口) 2e41f4b71Sopenharmony_ci当设备长时间未被使用或通过按键,可以使设备进入待机模式。待机模式不影响应用使用,还可以延长电池续航时间。通过本模块接口,可查询设备或应用是否为待机模式,以及为应用申请或取消待机资源管控。 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci> **说明**: 5e41f4b71Sopenharmony_ci> 6e41f4b71Sopenharmony_ci> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7e41f4b71Sopenharmony_ci> 8e41f4b71Sopenharmony_ci> 本模块接口为系统接口。 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci## 导入模块 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci```ts 13e41f4b71Sopenharmony_ciimport deviceStandby from '@ohos.resourceschedule.deviceStandby'; 14e41f4b71Sopenharmony_ci``` 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci## deviceStandby.getExemptedApps 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_cigetExemptedApps(resourceTypes: number, callback: AsyncCallback<Array<ExemptedAppInfo>>): void 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci获取进入待机模式的应用名单,使用Callback异步回调。 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DEVICE_STANDBY_EXEMPTION 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci**参数**: 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 30e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 31e41f4b71Sopenharmony_ci| ResourceTypes|number | 是 | 资源类型,类型具体说明请参考[ResourceType](#resourcetype)。 | 32e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[ExemptedAppInfo](#exemptedappinfo)>> | 是 |豁免应用信息 。| 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci**错误码**: 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[backgroundTaskManager错误码](errorcode-backgroundTaskMgr.md)和[通用错误码](../errorcode-universal.md)。 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 39e41f4b71Sopenharmony_ci| ---- | --------------------- | 40e41f4b71Sopenharmony_ci| 201 | Permission denied. | 41e41f4b71Sopenharmony_ci| 202 | Not System App. | 42e41f4b71Sopenharmony_ci| 401 | Parameter error. | 43e41f4b71Sopenharmony_ci| 9800001 | Memory operation failed. | 44e41f4b71Sopenharmony_ci| 9800002 | Parcel operation failed. | 45e41f4b71Sopenharmony_ci| 9800003 | Inner transact failed. | 46e41f4b71Sopenharmony_ci| 9800004 | System service operation failed. | 47e41f4b71Sopenharmony_ci| 18700001 | Caller information verification failed. | 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci**示例**: 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci```ts 52e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base'; 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_cilet resourceTypes: deviceStandby.ResourceType = deviceStandby.ResourceType.TIMER | deviceStandby.ResourceType.NETWORK; 55e41f4b71Sopenharmony_cideviceStandby.getExemptedApps(resourceTypes, (err: BusinessError, res: Array<deviceStandby.ExemptedAppInfo>) => { 56e41f4b71Sopenharmony_ci if (err) { 57e41f4b71Sopenharmony_ci console.log('DEVICE_STANDBY getExemptedApps callback failed. code is: ' + err.code + ',message is: ' + err.message); 58e41f4b71Sopenharmony_ci } else { 59e41f4b71Sopenharmony_ci console.log('DEVICE_STANDBY getExemptedApps callback success.'); 60e41f4b71Sopenharmony_ci for (let i = 0; i < res.length; i++) { 61e41f4b71Sopenharmony_ci console.log('DEVICE_STANDBY getExemptedApps callback result ' + JSON.stringify(res[i])); 62e41f4b71Sopenharmony_ci } 63e41f4b71Sopenharmony_ci } 64e41f4b71Sopenharmony_ci}); 65e41f4b71Sopenharmony_ci``` 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci## deviceStandby.getExemptedApps 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_cigetExemptedApps(resourceTypes: number): Promise<Array<ExemptedAppInfo>> 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci获取进入待机模式的应用名单,使用Promise异步回调。 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DEVICE_STANDBY_EXEMPTION 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci**参数**: 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 81e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 82e41f4b71Sopenharmony_ci| ResourceTypes|number | 是 |资源类型,类型具体说明请参考[ResourceType](#resourcetype)。| 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci**返回值**: 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci| 类型 | 说明 | 87e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------------- | 88e41f4b71Sopenharmony_ci| Promise<Array<[ExemptedAppInfo](#exemptedappinfo)>> | 豁免应用信息。 | 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci**错误码**: 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[backgroundTaskManager错误码](errorcode-backgroundTaskMgr.md)和[通用错误码](../errorcode-universal.md)。 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 95e41f4b71Sopenharmony_ci| ---- | --------------------- | 96e41f4b71Sopenharmony_ci| 201 | Permission denied. | 97e41f4b71Sopenharmony_ci| 202 | Not System App. | 98e41f4b71Sopenharmony_ci| 401 | Parameter error. | 99e41f4b71Sopenharmony_ci| 9800001 | Memory operation failed. | 100e41f4b71Sopenharmony_ci| 9800002 | Parcel operation failed. | 101e41f4b71Sopenharmony_ci| 9800003 | Inner transact failed. | 102e41f4b71Sopenharmony_ci| 9800004 | System service operation failed. | 103e41f4b71Sopenharmony_ci| 18700001 | Caller information verification failed. | 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci**示例**: 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci```ts 108e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base'; 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_cilet resourceTypes: deviceStandby.ResourceType = deviceStandby.ResourceType.TIMER | deviceStandby.ResourceType.NETWORK; 111e41f4b71Sopenharmony_cideviceStandby.getExemptedApps(resourceTypes).then( (res: Array<deviceStandby.ExemptedAppInfo>) => { 112e41f4b71Sopenharmony_ci console.log('DEVICE_STANDBY getExemptedApps promise success.'); 113e41f4b71Sopenharmony_ci for (let i = 0; i < res.length; i++) { 114e41f4b71Sopenharmony_ci console.log('DEVICE_STANDBY getExemptedApps promise result ' + JSON.stringify(res[i])); 115e41f4b71Sopenharmony_ci } 116e41f4b71Sopenharmony_ci}).catch( (err: BusinessError) => { 117e41f4b71Sopenharmony_ci console.log('DEVICE_STANDBY getExemptedApps promise failed. code is: ' + err.code + ',message is: ' + err.message); 118e41f4b71Sopenharmony_ci}); 119e41f4b71Sopenharmony_ci``` 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci## deviceStandby.requestExemptionResource 122e41f4b71Sopenharmony_ci 123e41f4b71Sopenharmony_cirequestExemptionResource(request: ResourceRequest): void 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ci应用订阅申请豁免,使应用临时不进入待机管控。 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DEVICE_STANDBY_EXEMPTION 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci**参数**: 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 135e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 136e41f4b71Sopenharmony_ci| request |[ResourceRequest](#resourcerequest)| 是 | 资源请求。 | 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci**错误码**: 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[backgroundTaskManager错误码](errorcode-backgroundTaskMgr.md)和[通用错误码](../errorcode-universal.md)。 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 143e41f4b71Sopenharmony_ci| ---- | --------------------- | 144e41f4b71Sopenharmony_ci| 201 | Permission denied. | 145e41f4b71Sopenharmony_ci| 202 | Not System App. | 146e41f4b71Sopenharmony_ci| 401 | Parameter error. | 147e41f4b71Sopenharmony_ci| 9800001 | Memory operation failed. | 148e41f4b71Sopenharmony_ci| 9800002 | Parcel operation failed. | 149e41f4b71Sopenharmony_ci| 9800003 | Inner transact failed. | 150e41f4b71Sopenharmony_ci| 9800004 | System service operation failed. | 151e41f4b71Sopenharmony_ci| 18700001 | Caller information verification failed. | 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci**示例**: 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci```ts 156e41f4b71Sopenharmony_cilet resRequest: deviceStandby.ResourceRequest = { 157e41f4b71Sopenharmony_ci resourceTypes: deviceStandby.ResourceType.TIMER, 158e41f4b71Sopenharmony_ci uid:10003, 159e41f4b71Sopenharmony_ci name:"com.example.app", 160e41f4b71Sopenharmony_ci duration:10, 161e41f4b71Sopenharmony_ci reason:"apply", 162e41f4b71Sopenharmony_ci}; 163e41f4b71Sopenharmony_cideviceStandby.requestExemptionResource(resRequest); 164e41f4b71Sopenharmony_ci``` 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci## deviceStandby.releaseExemptionResource 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_cireleaseExemptionResource(request: ResourceRequest): void 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci取消应用订阅申请豁免。 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DEVICE_STANDBY_EXEMPTION 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci**参数**: 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 180e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ | 181e41f4b71Sopenharmony_ci| request |[ResourceRequest](#resourcerequest)| 是 | 资源请求 。| 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci**错误码**: 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[backgroundTaskManager错误码](errorcode-backgroundTaskMgr.md)和[通用错误码](../errorcode-universal.md)。 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 188e41f4b71Sopenharmony_ci| ---- | --------------------- | 189e41f4b71Sopenharmony_ci| 201 | Permission denied. | 190e41f4b71Sopenharmony_ci| 202 | Not System App. | 191e41f4b71Sopenharmony_ci| 401 | Parameter error. | 192e41f4b71Sopenharmony_ci| 9800001 | Memory operation failed. | 193e41f4b71Sopenharmony_ci| 9800002 | Parcel operation failed. | 194e41f4b71Sopenharmony_ci| 9800003 | Inner transact failed. | 195e41f4b71Sopenharmony_ci| 9800004 | System service operation failed. | 196e41f4b71Sopenharmony_ci| 18700001 | Caller information verification failed. | 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci**示例**: 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci```ts 201e41f4b71Sopenharmony_cilet resRequest: deviceStandby.ResourceRequest = { 202e41f4b71Sopenharmony_ci resourceTypes: deviceStandby.ResourceType.TIMER, 203e41f4b71Sopenharmony_ci uid:10003, 204e41f4b71Sopenharmony_ci name:"com.demo.app", 205e41f4b71Sopenharmony_ci duration:10, 206e41f4b71Sopenharmony_ci reason:"unapply", 207e41f4b71Sopenharmony_ci}; 208e41f4b71Sopenharmony_cideviceStandby.releaseExemptionResource(resRequest); 209e41f4b71Sopenharmony_ci``` 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci## ResourceType 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci非待机应用资源枚举。 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci|名称 |值 |说明| 219e41f4b71Sopenharmony_ci| ------------ | ------------ |--------------| 220e41f4b71Sopenharmony_ci|NETWORK |1 |网络访问资源。| 221e41f4b71Sopenharmony_ci|RUNNING_LOCK |2 |cpu-runninglock资源。| 222e41f4b71Sopenharmony_ci|TIMER |4 | timer任务资源。| 223e41f4b71Sopenharmony_ci|WORK_SCHEDULER |8 | work任务资源。| 224e41f4b71Sopenharmony_ci|AUTO_SYNC |16 | 自动同步的资源。 | 225e41f4b71Sopenharmony_ci|PUSH |32 | pushkit资源。| 226e41f4b71Sopenharmony_ci|FREEZE |64 | 冻结应用资源。| 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci## ExemptedAppInfo 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci豁免应用信息,未进入待机管控的应用信息。 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_ci|名称 |类型 | 必填 |说明 | 236e41f4b71Sopenharmony_ci| ------------ | ------------ |------------ | ------------ | 237e41f4b71Sopenharmony_ci|resourceTypes | number | 是 |资源类型,类型具体说明请参考[ResourceType](#resourcetype)。 | 238e41f4b71Sopenharmony_ci|name |string | 是 | 应用名。 | 239e41f4b71Sopenharmony_ci|duration | number | 是 | 豁免时长。 | 240e41f4b71Sopenharmony_ci 241e41f4b71Sopenharmony_ci## ResourceRequest 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ci待机资源请求体。 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci|名称 |类型 | 必填 |说明 | 249e41f4b71Sopenharmony_ci| ------------ | ------------ |------------| ------------ | 250e41f4b71Sopenharmony_ci|resourceTypes | number | 是 |资源类型,类型具体说明请参考[ResourceType](#resourcetype)。 | 251e41f4b71Sopenharmony_ci|uid | number | 是 |应用uid。 | 252e41f4b71Sopenharmony_ci|name |string | 是 | 应用名称。 | 253e41f4b71Sopenharmony_ci|duration | number | 是 | 豁免时长。 | 254e41f4b71Sopenharmony_ci|reason |string | 是 | 申请原因。 |