/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file * @kit BackgroundTasksKit */ import { AsyncCallback, Callback } from './@ohos.base'; /** * Provides methods for managing bundle usage statistics, * including the methods for querying bundle usage information and state data. * *

You can use the methods defined in this class to query * the usage history and states of bundles in a specified period. * The system stores the query result in a {@link BundleStatsInfo} instance and * then returns it to you. * * @namespace usageStatistics * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 9 */ declare namespace usageStatistics { /** * @interface BundleStatsInfo * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ interface BundleStatsInfo { /** * The identifier of BundleStatsInfo. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ id: number; /** * The total duration, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilityInFgTotalTime?: number; /** * The last time when the application was accessed, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilityPrevAccessTime?: number; /** * The last time when the application was visible in the foreground, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilityPrevSeenTime?: number; /** * The total duration, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilitySeenTotalTime?: number; /** * The bundle name of the application. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ bundleName?: string; /** * The total duration, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ fgAbilityAccessTotalTime?: number; /** * The last time when the foreground application was accessed, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ fgAbilityPrevAccessTime?: number; /** * The time of the first bundle usage record in this {@code BundleActiveInfo} object, * in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ infosBeginTime?: number; /** * The time of the last bundle usage record in this {@code BundleActiveInfo} object, * in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ infosEndTime?: number; } /** * @interface HapFormInfo * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ interface HapFormInfo { /** * The form name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ formName: string; /** * The form dimension. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ formDimension: number; /** * The form id. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ formId: number; /** * The last time when the form was accessed, in milliseconds.. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ formLastUsedTime: number; /** * The click count of module. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ count: number; } /** * @interface HapModuleInfo * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ interface HapModuleInfo { /** * The device id of module. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ deviceId?: string; /** * The bundle name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ bundleName: string; /** * The module name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ moduleName: string; /** * The main ability name of module. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilityName?: string; /** * The label id of application. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ appLabelId?: number; /** * The label id of module. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ labelId?: number; /** * The description id of application. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ descriptionId?: number; /** * The ability id of main ability. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilityLableId?: number; /** * The description id of main ability. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilityDescriptionId?: number; /** * The icon id of main ability. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ abilityIconId?: number; /** * The launch count of module. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ launchedCount: number; /** * The last time when the module was accessed, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ lastModuleUsedTime: number; /** * The form usage record list of current module. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ formRecords: Array; } /** * @interface DeviceEventStats * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ interface DeviceEventStats { /** * The bundle name or system event name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ name: string; /** * The event id. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ eventId: number; /** * The the event occurrence number. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ count: number; } /** * @interface BundleEvents * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ interface BundleEvents { /** * The usage group of the application. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ appGroup?: number; /** * The bundle name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ bundleName?: string; /** * The shortcut ID. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ indexOfLink?: string; /** * The class name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ nameOfClass?: string; /** * The time when this state occurred, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ eventOccurredTime?: number; /** * The event id. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ eventId?: number; } /** * @interface AppGroupCallbackInfo * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ interface AppGroupCallbackInfo { /** * The usage old group of the application * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ appOldGroup: number; /** * The usage new group of the application * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ appNewGroup: number; /** * The use id * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ userId: number; /** * The change reason * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ changeReason: number; /** * The bundle name * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ bundleName: string; } /** * Checks whether the application with a specified bundle name is in the idle state. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - Indicates the bundle name of the application to query. * @param { AsyncCallback } callback - the callback of isIdleState. *

boolean value is true mean the application is idle in a particular period; false mean otherwise. * The time range of the particular period is defined by the system, which may be hours or days.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function isIdleState(bundleName: string, callback: AsyncCallback): void; /** * Checks whether the application with a specified bundle name is in the idle state. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - Indicates the bundle name of the application to query. * @returns { Promise } the promise returned by isIdleState. *

boolean value is true mean the application is idle in a particular period; false mean otherwise. * The time range of the particular period is defined by the system, which may be hours or days.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function isIdleState(bundleName: string): Promise; /** * Checks whether the application with a specified bundle name is in the idle state. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - Indicates the bundle name of the application to query. * @returns { boolean } *

boolean value is true mean the application is idle in a particular period; false mean otherwise. * The time range of the particular period is defined by the system, which may be hours or days.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 10 */ function isIdleStateSync(bundleName: string): boolean; /** * Queries the app group of the calling application. *

The priority defined in a priority group restricts the resource usage of an application, * for example, restricting the running of background tasks.

* * @param { AsyncCallback } callback - the callback of queryAppGroup. *

Returns the app group of the calling application.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000005 - Application is not installed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100002 - Failed to get the application group information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function queryAppGroup(callback: AsyncCallback): void; /** * Queries the app group of the calling application. *

The priority defined in a priority group restricts the resource usage of an application, * for example, restricting the running of background tasks.

* * @returns { Promise } the promise returned by queryAppGroup. *

Returns the app group of the calling application.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000005 - Application is not installed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100002 - Failed to get the application group information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function queryAppGroup(): Promise; /** * Queries the app group of the calling application. *

The priority defined in a priority group restricts the resource usage of an application, * for example, restricting the running of background tasks.

* * @returns { number } Returns the app group of the calling application. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000005 - Application is not installed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100002 - Failed to get the application group information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 10 */ function queryAppGroupSync(): number; /** * Queries the usage priority group by bundleName. *

The priority defined in a priority group restricts the resource usage of an application, * for example, restricting the running of background tasks.

* * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - name of the application. * @param { AsyncCallback } callback - the callback of queryAppGroup. *

the usage priority group of the calling application.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000005 - Application is not installed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100002 - Failed to get the application group information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function queryAppGroup(bundleName: string, callback: AsyncCallback): void; /** * Queries the usage priority group by bundleName. *

The priority defined in a priority group restricts the resource usage of an application, * for example, restricting the running of background tasks.

* * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - name of the application. * @returns { Promise } the promise returned by queryAppGroup. *

the usage priority group of the calling application.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000005 - Application is not installed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100002 - Failed to get the application group information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function queryAppGroup(bundleName: string): Promise; /** * Queries the usage priority group by bundleName. *

The priority defined in a priority group restricts the resource usage of an application, * for example, restricting the running of background tasks.

* * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - name of the application. * @returns { number } the usage priority group of the calling application. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000005 - Application is not installed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100002 - Failed to get the application group information. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 10 */ function queryAppGroupSync(bundleName: string): number; /** * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ type BundleStatsMap = Record; /** * Queries usage information about each bundle within a specified period. *

This method queries usage information at the {@link #BY_OPTIMIZED} interval by default.

* * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @param { AsyncCallback } callback - the callback of queryBundleStatsInfos, *

the {@link BundleStatsMap} objects containing the usage information about each bundle.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryBundleStatsInfos(begin: number, end: number, callback: AsyncCallback): void; /** * Queries usage information about each bundle within a specified period. *

This method queries usage information at the {@link #BY_OPTIMIZED} interval by default.

* * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @returns { Promise } the promise returned by queryBundleStatsInfos. *

the {@link BundleStatsMap} objects containing the usage information about each bundle.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryBundleStatsInfos(begin: number, end: number): Promise; /** * Declares interval type. * * @enum { number } * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ export enum IntervalType { /** * Indicates the interval type that will determine the optimal interval based on the start and end time. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ BY_OPTIMIZED = 0, /** * Indicates the daily interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ BY_DAILY = 1, /** * Indicates the weekly interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ BY_WEEKLY = 2, /** * Indicates the monthly interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ BY_MONTHLY = 3, /** * Indicates the annually interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ BY_ANNUALLY = 4 } /** * Queries usage information about each bundle within a specified period at a specified interval. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { IntervalType } byInterval - Indicates the interval at which the usage statistics are queried. *

The value can be {@link #BY_OPTIMIZED}, {@link #BY_DAILY}, * {@link #BY_WEEKLY}, {@link #BY_MONTHLY}, or {@link #BY_ANNUALLY}.

* @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @param { AsyncCallback> } callback - the callback of queryBundleStatsInfoByInterval. *

the list of {@link BundleStatsInfo} objects containing the usage information about each bundle.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryBundleStatsInfoByInterval( byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback> ): void; /** * Queries usage information about each bundle within a specified period at a specified interval. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { IntervalType } byInterval - Indicates the interval at which the usage statistics are queried. *

The value can be {@link #BY_OPTIMIZED}, {@link #BY_DAILY}, * {@link #BY_WEEKLY}, {@link #BY_MONTHLY}, or {@link #BY_ANNUALLY}.

* @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @returns { Promise> } the promise returned by queryBundleStatsInfoByInterval. *

the list of {@link BundleStatsInfo} objects containing the usage information about each bundle.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryBundleStatsInfoByInterval( byInterval: IntervalType, begin: number, end: number ): Promise>; /** * Queries state data of all bundles within a specified period identified by the start and end time. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @param { AsyncCallback> } callback - the promise returned by queryBundleEvents. *

the list of {@link BundleEvents} objects containing the state data of all bundles.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryBundleEvents(begin: number, end: number, callback: AsyncCallback>): void; /** * Queries state data of all bundles within a specified period identified by the start and end time. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @returns { Promise> } the promise returned by queryBundleEvents. *

the list of {@link BundleEvents} objects containing the state data of all bundles.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryBundleEvents(begin: number, end: number): Promise>; /** * Queries state data of the current bundle within a specified period. * * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @param { AsyncCallback> } callback - the callback of queryCurrentBundleEvents. *

the {@link BundleEvents} object Array containing the state data of the current bundle.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryCurrentBundleEvents(begin: number, end: number, callback: AsyncCallback>): void; /** * Queries state data of the current bundle within a specified period. * * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @returns { Promise> } the promise returned by queryCurrentBundleEvents. *

the {@link BundleEvents} object Array containing the state data of the current bundle.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryCurrentBundleEvents(begin: number, end: number): Promise>; /** * Queries recently module usage records with maxNum. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } maxNum - Indicates max record number in result, max value is 1000, default value is 1000. * @param { AsyncCallback> } callback - the callback of queryModuleUsageRecords. *

the {@link HapModuleInfo} object Array containing the usage data of the modules.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryModuleUsageRecords(maxNum: number, callback: AsyncCallback>): void; /** * Queries recently module usage records with maxNum. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } maxNum - Indicates max record number in result, max value is 1000, default value is 1000. * @returns { Promise> } the promise returned by queryModuleUsageRecords. *

the {@link HapModuleInfo} object Array containing the usage data of the modules.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryModuleUsageRecords(maxNum: number): Promise>; /** * Queries recently module usage records. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { AsyncCallback> } callback - the callback of queryModuleUsageRecords. *

the {@link HapModuleInfo} object Array containing the usage data of the modules.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryModuleUsageRecords(callback: AsyncCallback>): void; /** * Queries recently module usage records. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @returns { Promise> } the promise returned by queryModuleUsageRecords. *

the {@link HapModuleInfo} object Array containing the usage data of the modules.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryModuleUsageRecords(): Promise>; /** * Declares group type. * * @enum { number } * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ export enum GroupType { /** * Indicates the alive group. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ ALIVE_GROUP = 10, /** * Indicates the daily group. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ DAILY_GROUP = 20, /** * Indicates the fixed group. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ FIXED_GROUP = 30, /** * Indicates the rare group. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ RARE_GROUP = 40, /** * Indicates the limit group. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ LIMITED_GROUP = 50, /** * Indicates the never group. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ NEVER_GROUP = 60 } /** * Set app group by bundleName. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - name of the application. * @param { GroupType } newGroup - the group of the application whose name is bundleName. * @param { AsyncCallback } callback - the callback of setAppGroup. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100001 - Repeated operation on the application group. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function setAppGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback): void; /** * Set app group by bundleName. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { string } bundleName - name of the application. * @param { GroupType } newGroup - the group of the application whose name is bundleName. * @returns { Promise } the promise returned by setAppGroup. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10100001 - Repeated operation on the application group. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function setAppGroup(bundleName: string, newGroup: GroupType): Promise; /** * Register appGroup change callback to service. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { Callback } groupCallback - *

callback of AppGroupCallbackInfo when the group of app changed.

* @param { AsyncCallback } callback - the callback of registerAppGroupCallBack. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10100001 - Repeated operation on the application group. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function registerAppGroupCallBack(groupCallback: Callback, callback: AsyncCallback): void; /** * Register appGroup change callback to service. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { Callback } groupCallback - *

callback of AppGroupCallbackInfo when the group of app changed.

* @returns { Promise } the promise returned by registerAppGroupCallBack. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10100001 - Repeated operation on the application group. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function registerAppGroupCallBack(groupCallback: Callback): Promise; /** * Unregister appGroup change callback from service. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { AsyncCallback } callback - the callback of unregisterAppGroupCallBack. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10100001 - Repeated operation on the application group. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function unregisterAppGroupCallBack(callback: AsyncCallback): void; /** * Unregister appGroup change callback from service. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @returns { Promise } the promise returned by unregisterAppGroupCallBack. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10100001 - Repeated operation on the application group. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @systemapi Hide this for inner system use. * @since 9 */ function unregisterAppGroupCallBack(): Promise; /** * Queries device event states data within a specified period identified by the start and end time. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @param { AsyncCallback> } callback - the callback of queryDeviceEventStats. *

the {@link DeviceEventStats} object Array containing the event states data.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryDeviceEventStats(begin: number, end: number, callback: AsyncCallback>): void; /** * Queries device event states data within a specified period identified by the start and end time. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @returns { Promise> } the promise returned by queryDeviceEventStats. *

the {@link DeviceEventStats} object Array containing the event states data.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryDeviceEventStats(begin: number, end: number): Promise>; /** * Queries app notification number within a specified period identified by the start and end time. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @param { AsyncCallback> } callback - the callback of queryNotificationEventStats. *

the {@link DeviceEventStats} object Array containing the event states data.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryNotificationEventStats( begin: number, end: number, callback: AsyncCallback> ): void; /** * Queries app notification number within a specified period identified by the start and end time. * * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @param { number } begin - Indicates the start time of the query period, in milliseconds. * @param { number } end - Indicates the end time of the query period, in milliseconds. * @returns { Promise> } the promise returned by queryNotificationEventStats. *

the {@link DeviceEventStats} object Array containing the event states data.

* @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not System App. * @throws { BusinessError } 401 - Parameter error. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 10000001 - Memory operation failed. * @throws { BusinessError } 10000002 - Parcel operation failed. * @throws { BusinessError } 10000003 - System service operation failed. * @throws { BusinessError } 10000004 - IPC failed. * @throws { BusinessError } 10000006 - Failed to get the application information. * @throws { BusinessError } 10000007 - Failed to get the system time. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 9 */ function queryNotificationEventStats(begin: number, end: number): Promise>; } export default usageStatistics;