/* * Copyright (c) 2022 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 BundleStateInfo} or {@link BundleActiveState} instance and * then returns it to you. * * @namespace bundleState * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics */ declare namespace bundleState { /** * @interface BundleStateInfo * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.BundleStatsInfo */ interface BundleStateInfo { /** * The identifier of BundleStateInfo. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ id: number; /** * The total duration, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ abilityInFgTotalTime?: number; /** * The last time when the application was accessed, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ abilityPrevAccessTime?: number; /** * The last time when the application was visible in the foreground, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ abilityPrevSeenTime?: number; /** * The total duration, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ abilitySeenTotalTime?: number; /** * The bundle name of the application. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ bundleName?: string; /** * The total duration, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ fgAbilityAccessTotalTime?: number; /** * The last time when the foreground application was accessed, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ fgAbilityPrevAccessTime?: number; /** * The time of the first bundle usage record in this {@code BundleActiveInfo} object, * in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ infosBeginTime?: number; /** * The time of the last bundle usage record in this {@code BundleActiveInfo} object, * in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ infosEndTime?: number; /** * Merges a specified {@link BundleActiveInfo} object with this {@link BundleActiveInfo} object. * The bundle name of both objects must be the same. * * @param { BundleStateInfo } toMerge Indicates the {@link BundleActiveInfo} object to merge. * If the bundle names of the two {@link BundleActiveInfo} objects are different. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ merge(toMerge: BundleStateInfo): void; } /** * @typedef BundleActiveState * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.BundleEvents */ interface BundleActiveState { /** * The usage priority group of the application. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ appUsagePriorityGroup?: number; /** * The bundle name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ bundleName?: string; /** * The shortcut ID. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ indexOfLink?: string; /** * The class name. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ nameOfClass?: string; /** * The time when this state occurred, in milliseconds. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ stateOccurredTime?: number; /** * The state type. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ stateType?: number; } /** * Checks whether the application with a specified bundle name is in the idle state. * * @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.

* @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.isIdleState */ function isIdleState(bundleName: string, callback: AsyncCallback): void; /** * Checks whether the application with a specified bundle name is in the idle state. * * @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.

* @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.isIdleState */ function isIdleState(bundleName: string): Promise; /** * Queries 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.

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

Returns the app group of the calling application.

* @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryAppGroup */ function queryAppUsagePriorityGroup(callback: AsyncCallback): void; /** * Queries 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.

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

Returns the app group of the calling application.

* @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryAppGroup */ function queryAppUsagePriorityGroup(): Promise; /** * @typedef BundleActiveInfoResponse * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.BundleStatsMap */ interface BundleActiveInfoResponse { [key: string]: BundleStateInfo; } /** * 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 queryBundleStateInfos. *

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

* @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryBundleStatsInfos */ function queryBundleStateInfos(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 BundleActiveInfoResponse} objects containing the usage information about each bundle.

* @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryBundleStatsInfos */ function queryBundleStateInfos(begin: number, end: number): Promise; /** * Declares interval type. * * @enum { number } * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.IntervalType */ 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 * @since 7 * @deprecated since 9 */ BY_OPTIMIZED = 0, /** * Indicates the daily interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ BY_DAILY = 1, /** * Indicates the weekly interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ BY_WEEKLY = 2, /** * Indicates the monthly interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 */ BY_MONTHLY = 3, /** * Indicates the annually interval. * * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated 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 usage information about each bundle. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryBundleStatsInfoByInterval */ function queryBundleStateInfoByInterval( 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 usage information about each bundle. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryBundleStatsInfoByInterval */ function queryBundleStateInfoByInterval( 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 state data of all bundles. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryBundleEvents */ function queryBundleActiveStates(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 state data of all bundles. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @systemapi Hide this for inner system use. * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryBundleEvents */ function queryBundleActiveStates(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 state data of the current bundle. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryCurrentBundleEvents */ function queryCurrentBundleActiveStates( 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 state data of the current bundle. * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @since 7 * @deprecated since 9 * @useinstead ohos.resourceschedule.usageStatistics.queryCurrentBundleEvents */ function queryCurrentBundleActiveStates(begin: number, end: number): Promise>; } export default bundleState;