1# Context (System API)
2
3The **Context** module provides context for abilities or applications. It allows access to application-specific resources.
4
5> **NOTE**
6>
7>  - 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.
8>  - The APIs of this module can be used only in the stage model.
9>  - The APIs provided by this module are system APIs.
10
11## Modules to Import
12
13```ts
14import { common } from '@kit.AbilityKit';
15```
16
17## Context.createBundleContext<sup>(deprecated)</sup>
18
19createBundleContext(bundleName: string): Context
20
21Creates the context based on the bundle name.
22
23> **NOTE**
24>
25> If there are multiple modules in the stage model, resource ID conflicts may occur. You are advised to use [application.createModuleContext](./js-apis-app-ability-application-sys.md#applicationcreatemodulecontext12) instead.
26>
27> This API is deprecated since API version 12. You are advised to use [application.createBundleContext](./js-apis-app-ability-application-sys.md#applicationcreatebundlecontext12) instead.
28
29**System API**: This is a system API.
30
31**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
32
33**System capability**: SystemCapability.Ability.AbilityRuntime.Core
34
35**Parameters**
36
37| Name      | Type                    | Mandatory  | Description           |
38| -------- | ---------------------- | ---- | ------------- |
39| bundleName | string | Yes   | Bundle name.|
40
41**Return value**
42
43| Type| Description|
44| -------- | -------- |
45| Context | Context created.|
46
47**Error codes**
48
49For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
50
51| ID| Error Message|
52| ------- | -------------------------------- |
53| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
54
55**Example**
56
57```ts
58import { common, UIAbility } from '@kit.AbilityKit';
59import { BusinessError } from '@kit.BasicServicesKit';
60
61export default class EntryAbility extends UIAbility {
62  onCreate() {
63    console.log('MyAbility onCreate');
64    let bundleContext: common.Context;
65    try {
66      bundleContext = this.context.createBundleContext('com.example.test');
67    } catch (error) {
68      console.error(`createBundleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
69    }
70  }
71}
72```
73
74## Context.createModuleContext<sup>(deprecated)</sup>
75
76createModuleContext(bundleName: string, moduleName: string): Context
77
78Creates the context based on the bundle name and module name.
79
80> **NOTE**
81>
82> This API is deprecated since API version 12. You are advised to use [application.createModuleContext](./js-apis-app-ability-application-sys.md#applicationcreatemodulecontext12) instead.
83
84**System API**: This is a system API.
85
86**System capability**: SystemCapability.Ability.AbilityRuntime.Core
87
88**Parameters**
89
90| Name      | Type                    | Mandatory  | Description           |
91| -------- | ---------------------- | ---- | ------------- |
92| bundleName | string | Yes   | Bundle name.|
93| moduleName | string | Yes   | Module name.|
94
95**Return value**
96
97| Type| Description|
98| -------- | -------- |
99| Context | Context created.|
100
101**Error codes**
102
103For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
104
105| ID| Error Message|
106| ------- | -------------------------------- |
107| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
108
109**Example**
110
111```ts
112import { common, UIAbility } from '@kit.AbilityKit';
113import { BusinessError } from '@kit.BasicServicesKit';
114
115export default class EntryAbility extends UIAbility {
116  onCreate() {
117    console.log('MyAbility onCreate');
118    let moduleContext: common.Context;
119    try {
120      moduleContext = this.context.createModuleContext('com.example.test', 'entry');
121    } catch (error) {
122      console.error(`createModuleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
123    }
124  }
125}
126```
127
128## Context.createModuleResourceManager<sup>11+</sup>
129
130createModuleResourceManager(bundleName: string, moduleName: string): resmgr.ResourceManager
131
132Creates a resource management object for a module.
133
134**System API**: This is a system API.
135
136**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
137
138**System capability**: SystemCapability.Ability.AbilityRuntime.Core
139
140**Parameters**
141
142| Name      | Type                    | Mandatory  | Description           |
143| -------- | ---------------------- | ---- | ------------- |
144| bundleName | string | Yes   | Bundle name.|
145| moduleName | string | Yes   | Module name.|
146
147**Return value**
148
149| Type| Description|
150| -------- | -------- |
151| resmgr.ResourceManager | Object for resource management.|
152
153**Error codes**
154
155For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
156
157| ID| Error Message|
158| ------- | -------------------------------- |
159| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
160
161**Example**
162
163```ts
164import { UIAbility } from '@kit.AbilityKit';
165import { resourceManager } from '@kit.LocalizationKit';
166import { BusinessError } from '@kit.BasicServicesKit';
167
168export default class EntryAbility extends UIAbility {
169  onCreate() {
170    console.log('MyAbility onCreate');
171    let ModuleResourceManager: resourceManager.ResourceManager;
172    try {
173      ModuleResourceManager = this.context.createModuleResourceManager('com.example.test', 'entry');
174    } catch (error) {
175      console.error(`createModuleResourceManager failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
176    }
177  }
178}
179```
180## Context.createSystemHspModuleResourceManager<sup>12+</sup>
181
182createSystemHspModuleResourceManager(bundleName: string, moduleName: string): resmgr.ResourceManager
183
184Creates a resource manager object for a module of the system-level HSP.
185
186**System API**: This is a system API.
187
188**System capability**: SystemCapability.Ability.AbilityRuntime.Core
189
190**Parameters**
191
192| Name      | Type    | Mandatory  | Description  |
193| -------- |--------| ---- |------|
194| bundleName | string | Yes   | Bundle name. |
195| moduleName | string | Yes   | Module name.|
196
197**Error codes**
198
199For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md).
200
201| ID| Error Message|
202| ------- | -------------------------------- |
203| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
204| 16400001 | The specified ability does not exist. |
205
206**Example**
207
208```ts
209import { UIAbility } from '@kit.AbilityKit';
210
211export default class EntryAbility extends UIAbility {
212  onCreate() {
213    console.log('MyAbility onCreate');
214    this.context.createSystemHspModuleResourceManager("com.example.myapplication", "library");
215  }
216}
217```
218