harmony 鸿蒙Context

  • 2025-06-12
  • 浏览 (4)

Context

The Context module, inherited frome BaseContext, provides context for abilities or applications, including access to application-specific resources.

NOTE

  • The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
  • The APIs of this module can be used only in the stage model.

Modules to Import

import { common } from '@kit.AbilityKit';

Properties

System capability: SystemCapability.Ability.AbilityRuntime.Core

Name Type Read-only Optional Description
resourceManager resmgr.ResourceManager No No Object for resource management.
Atomic service API: This API can be used in atomic services since API version 11.
applicationInfo ApplicationInfo No No Application information.
Atomic service API: This API can be used in atomic services since API version 11.
cacheDir string No No Cache directory.
Atomic service API: This API can be used in atomic services since API version 11.
tempDir string No No Temporary directory.
Atomic service API: This API can be used in atomic services since API version 11.
resourceDir11+ string No No Resource directory.
NOTE: You are required to manually create the resfile directory in <module-name>\resource. The resfile directory can be accessed only in read-only mode.
Atomic service API: This API can be used in atomic services since API version 11.
filesDir string No No File directory.
Atomic service API: This API can be used in atomic services since API version 11.
databaseDir string No No Database directory.
Atomic service API: This API can be used in atomic services since API version 11.
preferencesDir string No No Preferences directory.
Atomic service API: This API can be used in atomic services since API version 11.
bundleCodeDir string No No Bundle code directory. Do not access resource files using concatenated paths. Use @ohos.resourceManager instead.
Atomic service API: This API can be used in atomic services since API version 11.
distributedFilesDir string No No Distributed file directory.
Atomic service API: This API can be used in atomic services since API version 11.
cloudFileDir12+ string No No Cloud file directory.
Atomic service API: This API can be used in atomic services since API version 12.
eventHub EventHub No No Event hub that implements event subscription, unsubscription, and triggering.
Atomic service API: This API can be used in atomic services since API version 11.
area contextConstant.AreaMode No No Encryption level of the directory.
Atomic service API: This API can be used in atomic services since API version 11.
processName18+ string No No Process name of the current application.
Atomic service API: This API can be used in atomic services since API version 18.

Context.createModuleContext(deprecated)

createModuleContext(moduleName: string): Context

Creates the context based on the module name.

NOTE

This API is deprecated since API version 12. You are advised to use application.createModuleContext instead.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
moduleName string Yes Module name.

Return value

Type Description
Context Context created.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let moduleContext: common.Context;
    try {
      moduleContext = this.context.createModuleContext('entry');
    } catch (error) {
      console.error(`createModuleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
    }
  }
}

NOTE

Only the context of other modules in the current application and the context of the intra-application HSP can be obtained. The context of other applications cannot be obtained.

Context.getApplicationContext

getApplicationContext(): ApplicationContext

Obtains the context of this application.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Return value

Type Description
ApplicationContext Application context obtained.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let applicationContext: common.Context;
    try {
      applicationContext = this.context.getApplicationContext();
    } catch (error) {
      console.error(`getApplicationContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
    }
  }
}

Context.getGroupDir10+

getGroupDir(dataGroupID: string): Promise<string>

Obtains the shared directory based on a group ID. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
dataGroupID string Yes Group ID, which is assigned by the system when an atomic service project is created.

Return value

Type Description
Promise<string> Promise used to return the result. If no shared directory exists, null is returned. Only the encryption level EL2 is supported.

Error codes

For details about the error codes, see Universal Error Codes and Ability Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let groupId = "1";
    let getGroupDirContext: common.Context = this.context;
    try {
      getGroupDirContext.getGroupDir(groupId).then(data => {
        console.log("getGroupDir result:" + data);
      })
    } catch (error) {
      console.error(`getGroupDirContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
    }
  }
}

Context.getGroupDir10+

getGroupDir(dataGroupID: string, callback: AsyncCallback<string>): void

Obtains the shared directory based on a group ID. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
dataGroupID string Yes Group ID, which is assigned by the system when an atomic service project is created.
callback AsyncCallback<string> Yes Callback used to return the result. If no shared directory exists, null is returned. Only the encryption level EL2 is supported.

Error codes

For details about the error codes, see Universal Error Codes and Ability Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let getGroupDirContext: common.Context = this.context;

    getGroupDirContext.getGroupDir("1", (err: BusinessError, data) => {
      if (err) {
        console.error(`getGroupDir faile, err: ${JSON.stringify(err)}`);
      } else {
        console.log(`getGroupDir result is: ${JSON.stringify(data)}`);
      }
    });
  }
}

Context.createAreaModeContext18+

createAreaModeContext(areaMode: contextConstant.AreaMode): Context

Creates the context for this application based on a data encryption level. This is required when an application needs to store different types of information in different directories. The application can obtain the corresponding directory.

Atomic service API: This API can be used in atomic services since API version 18.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
areaMode contextConstant.AreaMode Yes Data encryption level.

Return value

Type Description
Context Context created based on the data encryption level.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility, contextConstant } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    let areaMode: contextConstant.AreaMode = contextConstant.AreaMode.EL2;
    let areaModeContext: common.Context;
    try {
      areaModeContext = this.context.createAreaModeContext(areaMode);
    } catch (error) {
      hilog.error(0x0000, 'testTag', 'createAreaModeContext error is:%{public}s', JSON.stringify(error));
    }
  }
}

Context.createDisplayContext15+

createDisplayContext(displayId: number): Context

Creates the context based on the specified display ID, so as to obtain and use other application contexts with screen information (including ScreenDensity and Direction).

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
displayId number Yes Display ID.

Return value

Type Description
Context Context with the specified screen information.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    let displayContext: common.Context;
    try {
      displayContext = this.context.createDisplayContext(0);
    } catch (error) {
      hilog.error(0x0000, 'testTag', 'createDisplayContext error is:%{public}s', JSON.stringify(error));
    }
  }
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Ability Kit

harmony 鸿蒙AbilityAccessControl

harmony 鸿蒙AbilityBase

harmony 鸿蒙AbilityBase_Element

harmony 鸿蒙AbilityRuntime

harmony 鸿蒙bundle

harmony 鸿蒙OH_NativeBundle_ApplicationInfo

harmony 鸿蒙OH_NativeBundle_ElementName

harmony 鸿蒙ability_access_control.h

harmony 鸿蒙ability_base_common.h

0  赞