# @ohos.resourceschedule.deviceStandby(设备待机空闲部件功能)
本模块提供设备待机空闲部件管理功能
API使用场景:
如果用户长时间没有主动使用设备,且屏幕已关闭,则系统会使设备进入待机低功耗续航模式。待机续航模式会延迟应用后台CPU和网络活动,从而延长电池续航时间。 包括:
1、应用限网:通过iptable防火墙限制后台应用访问网络
2、Work待机任务:延迟应用的work任务响应
3、running_lock锁:临时释放应用的background running_lock锁
4、Timer响应:延迟应用的timer响应
5、待规划:停止wifi扫描、停止蓝牙扫描、云同步账户等
> **说明:**
> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```js
import deviceStandby from '@ohos.resourceschedule.deviceStandby';
```
## deviceStandby.isDeviceInStandby
function isDeviceInStandby(callback: AsyncCallback): void;
当前设备是否进入待机低功耗续航模式
**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby.Idle
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------ |
| callback | Callback<void> | 是 | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 |
**错误码**:
以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | IPC failed. | |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed when applying for efficiency resources. |
## deviceStandby.isDeviceInStandby
function isDeviceInStandby(): Promise<boolean>
当前设备是否进入待机低功耗续航模式
**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby.Idle
**返回值**:
| 类型 | 说明 |
| --------------------- | ---------------------------------------- |
| Promise<boolean> | 指定的Promise回调方法。返回是否进入待机低功耗续航模式。|
**错误码**:
以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 201 | Permission denied. |
| 401 | Parameter error. |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | IPC failed. | |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed when applying for efficiency resources. |
## deviceStandby.getExemptionListApps
function getExemptionListApps(resourceTypes: number, callback: AsyncCallback): void;
返回豁免应用名单
**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby.Exemption
**系统API:** 此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------ |
| resourceTypes |number | 是 | 资源类型,具体结构见文末枚举 |
| callback | AsyncCallback | 是 | 回调函数,具体结构见文末 |
**错误码**:
以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 201 | Permission denied. |
| 202 | Not System App. |
| 401 | Parameter error. |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | IPC failed. | |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed when applying for efficiency resources. |
## deviceStandby.getExemptionListApps
function getExemptionListApps(resourceTypes: number): Promise;
返回豁免应用名单
**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby.Exemption
**系统API:** 此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------ |
| resourceTypes |number | 是 | 资源类型。 |
**返回值**:
| 类型 | 说明 |
| --------------------- | ---------------------------------------- |
| Promise | 指定的Promise回调方法。返回豁免应用名单,具体结构见文末|
**错误码**:
以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 201 | Permission denied. |
| 202 | Not System App. |
| 401 | Parameter error. |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | IPC failed. | |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed when applying for efficiency resources. |
## deviceStandby.applyExemptionAppResource
function applyExemptionAppResource(request: ResourceRequest): void;
订阅申请豁免
**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby.Exemption
**系统API:** 此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------ |
| request |ResourceRequest | 是 | 请求豁免应用信息数据结构,具体结构见文末请求体 |
**错误码**:
以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 201 | Permission denied. |
| 202 | Not System App. |
| 401 | Parameter error. |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | IPC failed. | |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed when applying for efficiency resources. |
## deviceStandby.unapplyExemptionAppResource
function unapplyExemptionAppResource(request: ResourceRequest): void;
去除订阅申请豁免
**系统能力:** SystemCapability.ResourceSchedule.DeviceStandby.Exemption
**系统API:** 此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------ |
| request |ResourceRequest | 是 | 请求豁免应用信息数据结构,具体结构见文末请求体 |
**错误码**:
以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 201 | Permission denied. |
| 202 | Not System App. |
| 401 | Parameter error. |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | IPC failed. | |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed when applying for efficiency resources. |
## 枚举类和请求体
### ResourceType
The resource type of exemption application.
|名称 |枚举值 |说明|
| ------------ | ------------ |--------------|
|NETWORK |1 |The resource for non-standby network access.|
|RUNNING_LOCK |1 << 1 |The resource for non-standby cpu-runninglock.|
|TIMER |1 << 2 |The resource for non-standby timer.|
|WORK_SCHEDULER |1 << 3 |The resource for non-standby workscheduler.|
|AUTO_SYNC |1 << 4 |The resource for non-standby Automatic synchronization.|
|PUSH |1 << 5 |The resource for non-standby pushkit.|
|FREEZE |1 << 6 |The resource for non-standby freezing application.|
### ExemptionAppInfo
The information of exemption application.
|对象名 |类型 |说明 |
| ------------ | ------------ | ------------ |
|resourceTypes | number |The set of resource types that app wants to apply. |
|name |string | The app name. |
|duration | number | The exemption duration. |
### ResourceRequest
The request of standby resources.
|对象名 |类型 |说明 |
| ------------ | ------------ | ------------ |
|resourceTypes | number |The set of resource types that app wants to apply. |
|uid | number |The app uid. |
|name |string | The app name. |
|duration | number | The exemption duration. |
|reason |string | The apply reason. |