diff --git a/api/@ohos.workScheduler.d.ts b/api/@ohos.workScheduler.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..91be8d4a046dbe580d416b84efa888585c029676 --- /dev/null +++ b/api/@ohos.workScheduler.d.ts @@ -0,0 +1,274 @@ +/* + * 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} from './basic'; + +/** + * Work scheduler interface. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + */ +declare namespace workScheduler { + /** + * The info of work. + * + * @name WorkInfo + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + */ + export interface WorkInfo { + /** + * The id of the current work. + */ + workId: number; + /** + * The network type of the current work. + */ + networkType?: NetworkType; + /** + * Whether the device deep idle state has been set for triggering the work. + */ + isDeepIdle?: boolean; + /** + * The idle wait time based on which the work is triggered. + */ + idleWaitTime?: number; + /** + * Whether a charging state has been set for triggering the work. + */ + isCharging?: boolean; + /** + * The charger type based on which the work is triggered. + */ + chargerType?: ChargingType; + /** + * The battery level for triggering a work. + */ + batteryLevel?: number; + /** + * The battery status for triggering a work. + */ + batteryStatus?: BatteryStatus; + /** + * Whether a storage state has been set for triggering the work. + */ + storageRequest?: StorageRequest; + /** + * Whether the work has been set to repeat at the specified interval. + */ + isRepeat?: boolean; + /** + * Whether the current work will be saved. + */ + isPersisted?: boolean; + /** + * The interval at which the work is repeated. + */ + repeatCycleTime?: number; + /** + * The repeat of the current work. + */ + repeatCount?: number; + /** + * The bundle name of the current work. + */ + bundleName: string; + /** + * The ability name of the current work. + */ + abilityName: string; + } + + /** + * Add a work to the queue. A work can be executed only when it meets the preset triggering condition + * and complies with the rules fo work scheduler manager. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @param work The info of work. + * @return true if success, otherwise false. + */ + function startWork(work: WorkInfo): boolean; + + /** + * Stop a work. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @param work The info of work. + * @param needCancel Indicates the work that whether need to be canceled. + * @return true if success, otherwise false. + */ + function stopWork(work: WorkInfo, needCancel?: boolean): boolean; + + /** + * Obtains the latest status of a work. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @param workId The id of work. + */ + function getWorkStatus(workId: number, callback: AsyncCallback): void; + function getWorkStatus(workId: number): Promise; + + /** + * Get all work status. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @param workId The id of work. + * @return the work info list. + */ + function obtainAllWorks(callback: AsyncCallback): Array; + function obtainAllWorks(): Promise>; + + /** + * Stop all and clear work. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @return true if success, otherwise false. + */ + function stopAndClearWorks(): boolean; + + /** + * Check last work timeout. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @param workId The id of work. + * @return true if last work is timeout, otherwise false. + */ + function isLastWorkTimeOut(workId: number, callback: AsyncCallback): boolean; + function isLastWorkTimeOut(workId: number): Promise; + + /** + * Describes network type. + * + * @name NetworkType + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tablet, tv, wearable, car + */ + export enum NetworkType { + /** + * Describes any network connection. + */ + NETWORK_TYPE_ANY = 0, + /** + * Describes a mobile network connection. + */ + NETWORK_TYPE_MOBILE, + /** + * Describes a wifi network connection. + */ + NETWORK_TYPE_WIFI, + /** + * Describes a bluetooth network connection. + */ + NETWORK_TYPE_BLUETOOTH, + /** + * Describes a wifi p2p network connection. + */ + NETWORK_TYPE_WIFI_P2P, + /** + * Describes a wifi wire network connection. + */ + NETWORK_TYPE_ETHERNET + } + + /** + * Describes charging type. + * + * @name ChargingType + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tablet, tv, wearable, car + */ + export enum ChargingType { + /** + * Describes any charger is connected. + */ + CHARGING_PLUGGED_ANY = 0, + /** + * Describes ac charger is connected. + */ + CHARGING_PLUGGED_AC, + /** + * Describes usb charger is connected. + */ + CHARGING_PLUGGED_USB, + /** + * Describes wireless charger is connected. + */ + CHARGING_PLUGGED_WIRELESS + } + + /** + * Describes the battery status. + * + * @name BatteryStatus + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tablet, tv, wearable, car + */ + export enum BatteryStatus { + /** + * Describes battery status is to low. + */ + BATTERY_STATUS_LOW = 0, + /** + * Describes battery status is to ok. + */ + BATTERY_STATUS_OKAY, + /** + * Describes battery status is to low or ok. + */ + BATTERY_STATUS_LOW_OR_OKAY + } + + /** + * Describes the storage request. + * + * @name StorageRequest + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tablet, tv, wearable, car + */ + export enum StorageRequest { + /** + * Describes storage is to low. + */ + STORAGE_LEVEL_LOW = 0, + /** + * Describes storage is to ok. + */ + STORAGE_LEVEL_OKAY, + /** + * Describes storage is to low or ok. + */ + STORAGE_LEVEL_LOW_OR_OKAY + } +} +export default workScheduler; \ No newline at end of file diff --git a/api/@ohos.workSchedulerExtension.d.ts b/api/@ohos.workSchedulerExtension.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..05499ba10db44fabbce5f16b55942ab8d879f4d2 --- /dev/null +++ b/api/@ohos.workSchedulerExtension.d.ts @@ -0,0 +1,45 @@ +/* + * 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 workScheduler from "./@ohos.workScheduler"; + +/** + * Class of the work scheduler extension. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + */ +export default class WorkSchedulerExtension { + /** + * Called back when a work is started. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @param work The info of work. + */ + onWorkStart(work: workScheduler.WorkInfo): void; + + /** + * Called back when a work is stopped. + * + * @since 9 Preview + * @sysCap SystemCapability.Ressched.WorkScheduler + * @devices phone, tv, wearable, tablet, car + * @param work The info of work. + */ + onWorkStop(work: workScheduler.WorkInfo): void; +} \ No newline at end of file