harmony 鸿蒙@ohos.resourceschedule.deviceStandby (Device Standby)

2023-10-30 浏览 (432)

@ohos.resourceschedule.deviceStandby (Device Standby)

A device enters standby mode if it is unused for a long period of time or after the Power button is pressed. The standby mode prolongs the battery life without affecting the use of applications. The deviceStandby module provides APIs for you to check whether a device is in standby mode and request or cancel standby resource control for an application.

NOTE

The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import deviceStandby from '@ohos.resourceschedule.deviceStandby';

deviceStandby.getExemptedApps

getExemptedApps(resourceTypes: number, callback: AsyncCallback<Array<ExemptedAppInfo>>): void;

Obtains the list of applications that can still use resources of the specified types when the device is in standby mode. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.ResourceSchedule.DeviceStandby

Required permissions: ohos.permission.DEVICE_STANDBY_EXEMPTION

System API: This is a system API.

Parameters

NameTypeMandatoryDescription
ResourceTypesnumberYesTypes of resources that can be used.
callbackAsyncCallback<Array<ExemptedAppInfo>>YesCallback used to return the exempted application information.

Error codes

For details about the error codes, see Background Task Management Error Codes.

IDError Message
9800001Memory operation failed.
9800002Parcel operation failed.
9800003Inner transact failed.
9800004System service operation failed.
18700001Caller information verification failed.

Example

import { BusinessError } from '@ohos.base';

let resourceTypes: deviceStandby.ResourceType  = deviceStandby.ResourceType.TIMER;
deviceStandby.getExemptedApps(resourceTypes, (err: BusinessError, res: Array<deviceStandby.ExemptedAppInfo>) => {
  if (err) {
    console.log('DEVICE_STANDBY getExemptedApps callback failed. code is: ' + err.code + ',message is: ' + err.message);
  } else {
    console.log('DEVICE_STANDBY getExemptedApps callback success.');
    for (let i = 0; i < res.length; i++) {
      console.log('DEVICE_STANDBY getExemptedApps callback result ' + JSON.stringify(res[i]));
    }
  }
});

deviceStandby.getExemptedApps

getExemptedApps(resourceTypes: number): Promise<Array<ExemptedAppInfo>>;

Obtains the list of applications that can still use resources of the specified types when the device is in standby mode. This API uses a promise to return the result.

System capability: SystemCapability.ResourceSchedule.DeviceStandby

Required permissions: ohos.permission.DEVICE_STANDBY_EXEMPTION

System API: This is a system API.

Parameters

NameTypeMandatoryDescription
ResourceTypesnumberYesTypes of resources that can be used.

Return value

TypeDescription
Promise<Array<ExemptedAppInfo>>Promise used to return the exempted application information.

Error codes

For details about the error codes, see Background Task Management Error Codes.

IDError Message
9800001Memory operation failed.
9800002Parcel operation failed.
9800003Inner transact failed.
9800004System service operation failed.
18700001Caller information verification failed.

Example

import { BusinessError } from '@ohos.base';

let resourceTypes: deviceStandby.ResourceType = deviceStandby.ResourceType.TIMER;
deviceStandby.getExemptedApps(resourceTypes).then( (res: Array<deviceStandby.ExemptedAppInfo>) => {
  console.log('DEVICE_STANDBY getExemptedApps promise success.');
  for (let i = 0; i < res.length; i++) {
    console.log('DEVICE_STANDBY getExemptedApps promise result ' + JSON.stringify(res[i]));
  }
}).catch( (err: BusinessError) => {
  console.log('DEVICE_STANDBY getExemptedApps promise failed. code is: ' + err.code + ',message is: ' + err.message);
});

deviceStandby.requestExemptionResource

requestExemptionResource(request: ResourceRequest): void;

Requests exemption, so that the application can use restricted resources when the device is in standby mode.

System capability: SystemCapability.ResourceSchedule.DeviceStandby

Required permissions: ohos.permission.DEVICE_STANDBY_EXEMPTION

System API: This is a system API.

Parameters

NameTypeMandatoryDescription
requestResourceRequestYesRequest body.

Error codes

For details about the error codes, see Background Task Management Error Codes.

IDError Message
9800001Memory operation failed.
9800002Parcel operation failed.
9800003Inner transact failed.
9800004System service operation failed.
18700001Caller information verification failed.

Example

let resRequest: deviceStandby.ResourceRequest = {
  resourceTypes: deviceStandby.ResourceType.TIMER,
  uid:10003,
  name:"com.example.app",
  duration:10,
  reason:"apply",
};
deviceStandby.requestExemptionResource(resRequest);

deviceStandby.releaseExemptionResource

releaseExemptionResource(request: ResourceRequest): void;

Cancels exemption for the application.

System capability: SystemCapability.ResourceSchedule.DeviceStandby

Required permissions: ohos.permission.DEVICE_STANDBY_EXEMPTION

System API: This is a system API.

Parameters

NameTypeMandatoryDescription
requestResourceRequestYesRequest body.

Error codes

For details about the error codes, see Background Task Management Error Codes.

IDError Message
9800001Memory operation failed.
9800002Parcel operation failed.
9800003Inner transact failed.
9800004System service operation failed.
18700001Caller information verification failed.

Example

let resRequest: deviceStandby.ResourceRequest = {
  resourceTypes: deviceStandby.ResourceType.TIMER,
  uid:10003,
  name:"com.demo.app",
  duration:10,
  reason:"unapply",
};
deviceStandby.releaseExemptionResource(resRequest);

ResourceType

Enumerates the types of resources that can be used by exempted applications.

System capability: SystemCapability.ResourceSchedule.DeviceStandby

System API: This is a system API.

NameValueDescription
NETWORK1Network access resource.
RUNNING_LOCK2CPU running lock resource.
TIMER4Timer task resource.
WORK_SCHEDULER8Work task resource.
AUTO_SYNC16Automatic synchronization resource.
PUSH32Push kit resource.
FREEZE64Freezing application resource.

ExemptedAppInfo

Defines the information about an exempted application.

System capability: SystemCapability.ResourceSchedule.DeviceStandby

System API: This is a system API.

NameTypeMandatoryDescription
resourceTypesnumberYesTypes of resources that can be used.
namestringYesName of the application.
durationnumberYesExemption duration.

ResourceRequest

Defines the message used to request to be an exempted application.

System capability: SystemCapability.ResourceSchedule.DeviceStandby

System API: This is a system API.

NameTypeMandatoryDescription
resourceTypesnumberYesTypes of resources that can be used.
uidnumberYesUID of the application.
namestringYesName of the application.
durationnumberYesExemption duration.
reasonstringYesReason for the request.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙APIs

harmony 鸿蒙System Common Events (To Be Deprecated Soon)

harmony 鸿蒙System Common Events

harmony 鸿蒙API Reference Document Description

harmony 鸿蒙Enterprise Device Management Overview (for System Applications Only)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager)

harmony 鸿蒙@ohos.distributedBundle (Distributed Bundle Management)

harmony 鸿蒙@ohos.bundle (Bundle)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (EnterpriseAdminExtensionAbility)

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/a9b99a7d760f4f8f9b132b673e3100ab