# Context The **Context** module provides context for abilities or applications. It allows 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 ```ts import common from '@ohos.app.ability.common'; ``` ## Attributes **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Type | Readable | Writable | Description | | ----------- | ------ | ---- | ---- | ------- | | resourceManager | resmgr.[ResourceManager](js-apis-resource-manager.md) | Yes | No | Object for resource management. | | applicationInfo | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md) | Yes | No | Application information.| | cacheDir | string | Yes | No | Cache directory.| | tempDir | string | Yes | No | Temporary directory.| | filesDir | string | Yes | No | File directory.| | databaseDir | string | Yes | No | Database directory.| | preferencesDir | string | Yes | No | Preferences directory.| | bundleCodeDir | string | Yes | No | Bundle code directory. Do not access resource files by concatenating paths. Use the [resourceManager API](js-apis-resource-manager.md) instead.| | distributedFilesDir | string | Yes | No | Distributed file directory.| | eventHub | [EventHub](js-apis-inner-application-eventHub.md) | Yes | No | Event hub that implements event subscription, unsubscription, and triggering.| | area | contextConstant.[AreaMode](js-apis-app-ability-contextConstant.md) | Yes | No | Encryption level of the directory.| ## Context.createBundleContext createBundleContext(bundleName: string): Context; Creates the context based on the bundle name. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------- | ---- | ------------- | | bundleName | string | Yes | Bundle name.| **Return value** | Type| Description| | -------- | -------- | | Context | Context created.| **Example** ```ts let bundleContext: common.Context; try { bundleContext = this.context.createBundleContext('com.example.test'); } catch (error) { console.error('createBundleContext failed, error.code: ${error.code}, error.message: ${error.message}'); } ``` ## Context.createModuleContext createModuleContext(moduleName: string): Context; Creates the context based on the module name. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------- | ---- | ------------- | | moduleName | string | Yes | Module name.| **Return value** | Type| Description| | -------- | -------- | | Context | Context created.| **Example** ```ts let moduleContext: common.Context; try { moduleContext = this.context.createModuleContext('entry'); } catch (error) { console.error('createModuleContext failed, error.code: ${error.code}, error.message: ${error.message}'); } ``` ## Context.createModuleContext createModuleContext(bundleName: string, moduleName: string): Context; Creates the context based on the bundle name and module name. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------- | ---- | ------------- | | bundleName | string | Yes | Bundle name.| | moduleName | string | Yes | Module name.| **Return value** | Type| Description| | -------- | -------- | | Context | Context created.| **Example** ```ts let moduleContext: common.Context; try { moduleContext = this.context.createModuleContext('com.example.test', 'entry'); } catch (error) { console.error('createModuleContext failed, error.code: ${error.code}, error.message: ${error.message}'); } ``` ## Context.getApplicationContext getApplicationContext(): ApplicationContext; Obtains the context of this application. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Return value** | Type| Description| | -------- | -------- | | [ApplicationContext](js-apis-inner-application-applicationContext.md) | Application context obtained.| **Example** ```ts let applicationContext: common.Context; try { applicationContext = this.context.getApplicationContext(); } catch (error) { console.error('getApplicationContext failed, error.code: ${error.code}, error.message: ${error.message}'); } ``` ## Context.getGroupDir10+ getGroupDir(dataGroupID: string): Promise\; Obtains the shared directory based on a group ID. This API uses a promise to return the result. **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 application project is created.| **Return value** | Type| Description| | -------- | -------- | | Promise\ | 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 [Ability Error Codes](../errorcodes/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 16000011 | The context does not exist. | **Example** ```ts let groupId = "1"; let getGroupDirContext: common.Context; try { getGroupDirContext.getGroupDir(groupId).then(data => { console.log("getGroupDir result:" + data); }) } catch (error) { console.error('getGroupDirContext failed, error.code: ${error.code}, error.message: ${error.message}'); } ``` ## Context.getGroupDir10+ getGroupDir(dataGroupID: string, callback: AsyncCallback\); Obtains the shared directory based on a group ID. This API uses an asynchronous callback to return the result. **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 application project is created.| | callback | AsyncCallback\ | 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 [Ability Error Codes](../errorcodes/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 16000011 | The context does not exist. | **Example** ```ts let getGroupDirContext: common.Context; getGroupDirContext.getGroupDir("1", (err, data) => { if (err) { console.error('getGroupDir faile, err: ${JSON.stringify(err)}'); } else { console.log('getGroupDir result is: ${JSON.stringify(data)}'); } }); ```