/* * 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. */ import { AsyncCallback , Callback} from './basic'; /** * 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. * * @since 7 * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ declare namespace bundleState { /** * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ interface BundleStateInfo { /** * the identifier of BundleStateInfo. */ id: number; /** * the total duration, in milliseconds. */ abilityInFgTotalTime?: number; /** * the last time when the application was accessed, in milliseconds. */ abilityPrevAccessTime?: number; /** * the last time when the application was visible in the foreground, in milliseconds. */ abilityPrevSeenTime?: number; /** * the total duration, in milliseconds. */ abilitySeenTotalTime?: number; /** * the bundle name of the application. */ bundleName?: string; /** * the total duration, in milliseconds. */ fgAbilityAccessTotalTime?: number; /** * the last time when the foreground application was accessed, in milliseconds. */ fgAbilityPrevAccessTime?: number; /** * the time of the first bundle usage record in this {@code BundleActiveInfo} object, * in milliseconds. */ infosBeginTime?: number; /** * the time of the last bundle usage record in this {@code BundleActiveInfo} object, * in milliseconds. */ infosEndTime?: number; /** * Merges a specified {@link BundleActiveInfo} object with this {@link BundleActiveInfo} object. * The bundle name of both objects must be the same. * * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @param toMerge Indicates the {@link BundleActiveInfo} object to merge. * if the bundle names of the two {@link BundleActiveInfo} objects are different. */ merge(toMerge: BundleStateInfo): void; } /** * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ interface BundleActiveState { /** * the usage priority group of the application. */ appUsagePriorityGroup?: number; /** * the bundle name. */ bundleName?: string; /** * the shortcut ID. */ indexOfLink?: string; /** * the class name. */ nameOfClass?: string; /** * the time when this state occurred, in milliseconds. */ stateOccurredTime?: number; /** * the state type. */ stateType?: number; } /** * Checks whether the application with a specified bundle name is in the idle state. * * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @param bundleName Indicates the bundle name of the application to query. * @return Returns {@code true} if the application is idle in a particular period; * returns {@code false} otherwise. The time range of the particular period is defined by the system, * which may be hours or days. * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ function isIdleState(bundleName: string, callback: AsyncCallback): void; 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.

* * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.AppGroup * @return Returns the usage priority group of the calling application. * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ function queryAppUsagePriorityGroup(callback: AsyncCallback): void; function queryAppUsagePriorityGroup(): Promise; /** * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ 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.

* * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @systemapi Hide this for inner system use. * @param begin Indicates the start time of the query period, in milliseconds. * @param end Indicates the end time of the query period, in milliseconds. * @return Returns the {@link BundleActiveInfoResponse} objects containing the usage information about each bundle. * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ function queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback): void; function queryBundleStateInfos(begin: number, end: number): Promise; /** * Declares interval type. * * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ export enum IntervalType { /** * Indicates the interval type that will determine the optimal interval based on the start and end time. */ BY_OPTIMIZED = 0, /** * Indicates the daily interval. */ BY_DAILY = 1, /** * Indicates the weekly interval. */ BY_WEEKLY = 2, /** * Indicates the monthly interval. */ BY_MONTHLY = 3, /** * Indicates the annually interval. */ BY_ANNUALLY = 4 } /** * Queries usage information about each bundle within a specified period at a specified interval. * * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @systemapi Hide this for inner system use. * @param 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 begin Indicates the start time of the query period, in milliseconds. * @param end Indicates the end time of the query period, in milliseconds. * @return Returns the list of {@link BundleStateInfo} objects containing the usage information about each bundle. * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ function queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback>): void; 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. * * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @permission ohos.permission.BUNDLE_ACTIVE_INFO * @systemapi Hide this for inner system use. * @param begin Indicates the start time of the query period, in milliseconds. * @param end Indicates the end time of the query period, in milliseconds. * @return Returns the list of {@link BundleActiveState} objects containing the state data of all bundles. * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ function queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback>): void; function queryBundleActiveStates(begin: number, end: number): Promise>; /** * Queries state data of the current bundle within a specified period. * * @since 7 * @syscap SystemCapability.ResourceSchedule.UsageStatistics.App * @param begin Indicates the start time of the query period, in milliseconds. * @param end Indicates the end time of the query period, in milliseconds. * @return Returns the {@link BundleActiveState} object Array containing the state data of the current bundle. * @deprecated since 9 * @useinstead @ohos.resourceschedule.usageStatistics */ function queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback>): void; function queryCurrentBundleActiveStates(begin: number, end: number): Promise>; } export default bundleState;