/* * 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 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. 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. 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. The priority defined in a priority group restricts the resource usage of an application,
* for example, restricting the running of background tasks. Returns 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 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. The priority defined in a priority group restricts the resource usage of an application,
* for example, restricting the running of background tasks. the usage priority 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. the usage priority 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. This method queries usage information at the {@link #BY_OPTIMIZED} interval by default. the {@link BundleStatsMap} objects containing the usage information about each bundle. This method queries usage information at the {@link #BY_OPTIMIZED} interval by default. the {@link BundleStatsMap} objects containing the usage information about each bundle. The value can be {@link #BY_OPTIMIZED}, {@link #BY_DAILY},
* {@link #BY_WEEKLY}, {@link #BY_MONTHLY}, or {@link #BY_ANNUALLY}. the list of {@link BundleStatsInfo} objects containing the usage information about each bundle. The value can be {@link #BY_OPTIMIZED}, {@link #BY_DAILY},
* {@link #BY_WEEKLY}, {@link #BY_MONTHLY}, or {@link #BY_ANNUALLY}. the list of {@link BundleStatsInfo} objects containing the usage information about each bundle. the list of {@link BundleEvents} objects containing the state data of all bundles. the list of {@link BundleEvents} objects containing the state data of all bundles. the {@link BundleEvents} object Array containing the state data of the current bundle. the {@link BundleEvents} object Array containing the state data of the current bundle. the {@link HapModuleInfo} object Array containing the usage data of the modules. the {@link HapModuleInfo} object Array containing the usage data of the modules. the {@link HapModuleInfo} object Array containing the usage data of the modules. the {@link HapModuleInfo} object Array containing the usage data of the modules. callback of AppGroupCallbackInfo when the group of app changed. callback of AppGroupCallbackInfo when the group of app changed. the {@link DeviceEventStats} object Array containing the event states data. the {@link DeviceEventStats} object Array containing the event states data. the {@link DeviceEventStats} object Array containing the event states data. the {@link DeviceEventStats} object Array containing the event states data.
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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.
*
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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
2. Incorrect parameters types; 3. Parameter verification failed.
* @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