/* * Copyright (c) 2022-2025 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 AbilityKit */ import { AsyncCallback } from '../@ohos.base'; import Context from './Context'; import AbilityLifecycleCallback from '../@ohos.app.ability.AbilityLifecycleCallback'; import EnvironmentCallback from '../@ohos.app.ability.EnvironmentCallback'; import type ApplicationStateChangeCallback from '../@ohos.app.ability.ApplicationStateChangeCallback'; import { ProcessInformation } from './ProcessInformation'; import type ConfigurationConstant from '../@ohos.app.ability.ConfigurationConstant'; import Want from '../@ohos.app.ability.Want'; /** * The context of an application. It allows access to application-specific resources. * * @extends Context * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * The context of an application. It allows access to application-specific resources. * * @extends Context * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @since 10 */ /** * The context of an application. It allows access to application-specific resources. * * @extends Context * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 11 */ export default class ApplicationContext extends Context { /** * Register ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { AbilityLifecycleCallback } callback - The ability lifecycle callback. * @returns { number } Returns the number code of the callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Register ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { AbilityLifecycleCallback } callback - The ability lifecycle callback. * @returns { number } Returns the number code of the callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @since 10 */ /** * Register ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { AbilityLifecycleCallback } callback - The ability lifecycle callback. * @returns { number } Returns the number code of the callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 11 */ on(type: 'abilityLifecycle', callback: AbilityLifecycleCallback): number; /** * Unregister ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { number } callbackId - Indicates the number code of the callback. * @param { AsyncCallback } callback - The callback of off. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Unregister ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { number } callbackId - Indicates the number code of the callback. * @param { AsyncCallback } callback - The callback of off. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @since 10 */ /** * Unregister ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { number } callbackId - Indicates the number code of the callback. * @param { AsyncCallback } callback - The callback of off. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 11 */ off(type: 'abilityLifecycle', callbackId: number, callback: AsyncCallback): void; /** * Unregister ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { number } callbackId - Indicates the number code of the callback. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Unregister ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { number } callbackId - Indicates the number code of the callback. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ /** * Unregister ability lifecycle callback. * * @param { 'abilityLifecycle' } type - abilityLifecycle. * @param { number } callbackId - Indicates the number code of the callback. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 12 */ off(type: 'abilityLifecycle', callbackId: number): Promise; /** * Register environment callback. * * @param { 'environment' } type - environment. * @param { EnvironmentCallback } callback - The environment callback. * @returns { number } Returns the number code of the callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Register environment callback. * * @param { 'environment' } type - environment. * @param { EnvironmentCallback } callback - The environment callback. * @returns { number } Returns the number code of the callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ on(type: 'environment', callback: EnvironmentCallback): number; /** * Unregister environment callback. * * @param { 'environment' } type - environment. * @param { number } callbackId - Indicates the number code of the callback. * @param { AsyncCallback } callback - The callback of unregisterEnvironmentCallback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Unregister environment callback. * * @param { 'environment' } type - environment. * @param { number } callbackId - Indicates the number code of the callback. * @param { AsyncCallback } callback - The callback of unregisterEnvironmentCallback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ off(type: 'environment', callbackId: number, callback: AsyncCallback): void; /** * Unregister environment callback. * * @param { 'environment' } type - environment. * @param { number } callbackId - Indicates the number code of the callback. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Unregister environment callback. * * @param { 'environment' } type - environment. * @param { number } callbackId - Indicates the number code of the callback. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ off(type: 'environment', callbackId: number): Promise; /** * Register applicationStateChange callback. * * @param { 'applicationStateChange' } type - applicationStateChange. * @param { ApplicationStateChangeCallback } callback - The applicationStateChange callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 10 */ /** * Register applicationStateChange callback. * * @param { 'applicationStateChange' } type - applicationStateChange. * @param { ApplicationStateChangeCallback } callback - The applicationStateChange callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ /** * Register applicationStateChange callback. * * @param { 'applicationStateChange' } type - applicationStateChange. * @param { ApplicationStateChangeCallback } callback - The applicationStateChange callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 18 */ on(type: 'applicationStateChange', callback: ApplicationStateChangeCallback): void; /** * Unregister applicationStateChange callback. * * @param { 'applicationStateChange' } type - applicationStateChange. * @param { ApplicationStateChangeCallback } [callback] - The applicationStateChange callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 10 */ /** * Unregister applicationStateChange callback. * * @param { 'applicationStateChange' } type - applicationStateChange. * @param { ApplicationStateChangeCallback } [callback] - The applicationStateChange callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ /** * Unregister applicationStateChange callback. * * @param { 'applicationStateChange' } type - applicationStateChange. * @param { ApplicationStateChangeCallback } [callback] - The applicationStateChange callback. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 18 */ off(type: 'applicationStateChange', callback?: ApplicationStateChangeCallback): void; /** * Get information about running processes * * @returns { Promise> } Returns the array of {@link ProcessInformation}. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Get information about running processes * * @returns { Promise> } Returns the array of {@link ProcessInformation}. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @since 10 */ /** * Get information about running processes * * @returns { Promise> } Returns the array of {@link ProcessInformation}. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 11 */ getRunningProcessInformation(): Promise>; /** * Get information about running processes * * @param { AsyncCallback> } callback - The callback is used to return the array of {@link ProcessInformation}. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Get information about running processes * * @param { AsyncCallback> } callback - The callback is used to return the array of {@link ProcessInformation}. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @since 10 */ /** * Get information about running processes * * @param { AsyncCallback> } callback - The callback is used to return the array of {@link ProcessInformation}. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 11 */ getRunningProcessInformation(callback: AsyncCallback>): void; /** * Kill all processes of the application * * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Kill all processes of the application * * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ killAllProcesses(): Promise; /** * Kill all processes of the application * * @param { boolean } clearPageStack - The flag that indicates whether the page stack need to be cleared. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 401 - If the input parameter is not valid parameter. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 14 */ killAllProcesses(clearPageStack: boolean): Promise; /** * Kill all processes of the application * * @param { AsyncCallback } callback - The callback of killAllProcesses. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 9 */ /** * Kill all processes of the application * * @param { AsyncCallback } callback - The callback of killAllProcesses. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ killAllProcesses(callback: AsyncCallback); /** * Set colorMode of the application * * @param { ConfigurationConstant.ColorMode } colorMode - Color mode. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ /** * Set colorMode of the application * * @param { ConfigurationConstant.ColorMode } colorMode - Color mode. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @crossplatform * @atomicservice * @since 18 */ setColorMode(colorMode: ConfigurationConstant.ColorMode): void; /** * Set language of the application * * @param { string } language - Language. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 11 */ setLanguage(language: string): void; /** * Clear up application data by app self * * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 11 */ clearUpApplicationData(): Promise; /** * Clear up application data by app self * * @param { AsyncCallback } callback - The callback of clearUpApplicationData. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 11 */ clearUpApplicationData(callback: AsyncCallback): void; /** * Kill the application and does not call back the onDestroy method, then start UIAbility. * * @param { Want } want - Indicates the want name of the current app, and the ability name is UIAbility. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000050 - Internal error. * @throws { BusinessError } 16000053 - The ability is not on the top of the UI. * @throws { BusinessError } 16000063 - The target to restart does not belong to the current application or is not a UIAbility. * @throws { BusinessError } 16000064 - Restart too frequently. Try again at least 3s later. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 12 */ restartApp(want: Want): void; /** * Preload UIExtensionAbility. * * @permission ohos.permission.PRELOAD_UI_EXTENSION_ABILITY * @param { Want } want - Indicates the want of target UIExtensionAbility. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - The application does not have permission to call the interface. * @throws { BusinessError } 202 - The application is not system-app, can not use system-api. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000001 - The specified ability does not exist. * @throws { BusinessError } 16000002 - Incorrect ability type. * @throws { BusinessError } 16000004 - Failed to start the invisible ability. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @systemapi * @stagemodelonly * @since 12 */ preloadUIExtensionAbility(want: Want): Promise; /** * Set the state about whether the application supports process cache or not. * * @param { boolean } isSupported - Indicates the process cache support state. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 801 - Capability not supported. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 12 */ setSupportedProcessCache(isSupported : boolean): void; /** * Set font of the application * * @param { string } font - Font. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 12 */ setFont(font: string): void; /** * Get current app clone index. * * @returns { number } Returns the app clone index for current app. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000071 - The MultiAppMode is not {@link APP_CLONE}. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 12 */ getCurrentAppCloneIndex(): number; /** * Set font size scale. * @param {number} fontSizeScale - Font size scale. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @atomicservice * @since 13 */ setFontSizeScale(fontSizeScale: number): void; /** * Get current app key of current running app instance. * * @returns { string } Returns the key of current running app instance. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000078 - The multi-instance is not supported. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 14 */ getCurrentInstanceKey(): string; /** * Get all running app instance key for current bundle * * @returns { Promise> } Returns the array of all running app instance keys. * @throws { BusinessError } 16000011 - The context does not exist. * @throws { BusinessError } 16000050 - Internal error. * @throws { BusinessError } 16000078 - The multi-instance is not supported. * @syscap SystemCapability.Ability.AbilityRuntime.Core * @stagemodelonly * @since 14 */ getAllRunningInstanceKeys(): Promise>; }