/* * 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 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.