• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bundle.bundleResourceManager (bundleResourceManager) (System API)
2
3The **bundleResourceManager** module provides APIs for obtaining resource information, including [BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md) and [LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md).
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 11. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> Since API version 12, this module supports query of icons and names of disabled applications and applications installed by all users.
10>
11> The APIs provided by this module are system APIs.
12
13## Modules to Import
14
15```ts
16import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
17```
18
19## Required Permissions
20
21| Permission                                      | APL    | Description           |
22| ------------------------------------------ | ------------ | ------------------|
23| ohos.permission.GET_BUNDLE_RESOURCES| system_basic | Allows an application to obtain resource information of another application.|
24| ohos.permission.GET_INSTALLED_BUNDLE_LIST | system_basic | Allows an application to read the list of installed applications.|
25
26For details about the APL, see [Basic Concepts in the Permission Mechanism](../../security/AccessToken/app-permission-mgmt-overview.md#basic-concepts-in-the-permission-mechanism).
27
28## Enums
29
30### ResourceFlag
31
32Enumerates the resource information flags, which indicate the type of resource information to obtain.
33
34**System API**: This is a system API.
35
36 **System capability**: SystemCapability.BundleManager.BundleFramework.Resource
37
38| Name                                     | Value        | Description                                                        |
39| ----------------------------------------- | ---------- | ------------------------------------------------------------ |
40| GET_RESOURCE_INFO_ALL                   | 0x00000001 | Both the application icon and label are obtained.|
41| GET_RESOURCE_INFO_WITH_LABEL          | 0x00000002 | Only the application label is obtained.|
42| GET_RESOURCE_INFO_WITH_ICON           | 0x00000004 | Only the application icon is obtained.|
43| GET_RESOURCE_INFO_WITH_SORTED_BY_LABEL| 0x00000008 | The obtained information is sorted by label. It must be used together with **GET_RESOURCE_INFO_ALL** or **GET_RESOURCE_INFO_WITH_LABEL**.|
44| GET_RESOURCE_INFO_WITH_DRAWABLE_DESCRIPTOR<sup>12+</sup>| 0x00000010 | The [drawableDescriptor](../apis-arkui/js-apis-arkui-drawableDescriptor-sys.md) object of the application icon is obtained.|
45
46
47## APIs
48
49### bundleResourceManager.getBundleResourceInfo
50
51getBundleResourceInfo(bundleName: string, resourceFlags?: [number](#resourceflag)): [BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md)
52
53Obtains the resource information of an application based on the given bundle name and resource flags. This API returns the result synchronously.
54
55**System API**: This is a system API.
56
57**Required permissions**: ohos.permission.GET_BUNDLE_RESOURCES
58
59**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
60
61**Parameters**
62
63| Name    | Type  | Mandatory| Description               |
64| ----------- | ------ | ---- | --------------------- |
65| bundleName | string | Yes  | Bundle name of the application.|
66| resourceFlags | [number](#resourceflag) | No  | Type of the resource information to obtain.|
67
68**Return value**
69
70| Type                                                       | Description                                 |
71| ----------------------------------------------------------- | ------------------------------------- |
72| [BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md) | Resource information of the application obtained.|
73
74
75**Error codes**
76
77For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md).
78
79| ID| Error Message                             |
80| -------- | ------------------------------------- |
81| 201 | Permission denied. |
82| 202 | Permission denied, non-system app called system api. |
83| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
84| 17700001 | The specified bundleName is not found. |
85
86
87**Example**
88
89```ts
90import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
91import { BusinessError } from '@ohos.base';
92import hilog from '@ohos.hilog';
93let bundleName = "com.example.myapplication";
94let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
95try {
96    let resourceInfo = bundleResourceManager.getBundleResourceInfo(bundleName, bundleFlags);
97    hilog.info(0x0000, 'testTag', 'getBundleResourceInfo successfully. Data label: %{public}s', JSON.stringify(resourceInfo.label));
98} catch (err) {
99    let message = (err as BusinessError).message;
100    hilog.error(0x0000, 'testTag', 'getBundleResourceInfo failed: %{public}s', message);
101}
102```
103
104### bundleResourceManager.getLauncherAbilityResourceInfo
105
106getLauncherAbilityResourceInfo(bundleName: string, resourceFlags?: [number](#resourceflag)): Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)>
107
108Obtains the bundle information of the entry ability of an application based on the given bundle name and resource flags. This API returns the result synchronously.
109
110**System API**: This is a system API.
111
112**Required permissions**: ohos.permission.GET_BUNDLE_RESOURCES
113
114**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
115
116**Parameters**
117
118| Name    | Type  | Mandatory| Description               |
119| ----------- | ------ | ---- | --------------------- |
120| bundleName | string | Yes  | Bundle name of the application.|
121| resourceFlags | [number](#resourceflag) | No  | Type of the resource information to obtain. The default value is **[ResourceFlag](#resourceflag).GET_RESOURCE_INFO_ALL**.|
122
123**Return value**
124
125| Type                                                       | Description                                 |
126| ----------------------------------------------------------- | ------------------------------------- |
127| Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)> | Resource information of the entry ability obtained.|
128
129**Error codes**
130
131For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md).
132
133| ID| Error Message                             |
134| -------- | ------------------------------------- |
135| 201 | Permission denied. |
136| 202 | Permission denied, non-system app called system api. |
137| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
138| 17700001 | The specified bundleName is not found. |
139
140
141**Example**
142
143```ts
144import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
145import { BusinessError } from '@ohos.base';
146import hilog from '@ohos.hilog';
147let bundleName = "com.example.myapplication";
148let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
149try {
150    let resourceInfo = bundleResourceManager.getLauncherAbilityResourceInfo(bundleName, bundleFlags);
151    hilog.info(0x0000, 'testTag', 'getLauncherAbilityResourceInfo successfully. Data label: %{public}s', JSON.stringify(resourceInfo[0].label));
152} catch (err) {
153    let message = (err as BusinessError).message;
154    hilog.error(0x0000, 'testTag', 'getLauncherAbilityResourceInfo failed: %{public}s', message);
155}
156```
157
158### bundleResourceManager.getAllBundleResourceInfo
159
160getAllBundleResourceInfo(resourceFlags: [number](#resourceflag), callback: AsyncCallback<Array<[BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md)>>): void
161
162Obtains the bundle resource information of all applications based on the given resource flags. This API uses an asynchronous callback to return the result.
163
164**System API**: This is a system API.
165
166**Required permissions**: ohos.permission.GET_INSTALLED_BUNDLE_LIST and ohos.permission.GET_BUNDLE_RESOURCES
167
168**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
169
170**Parameters**
171
172| Name    | Type  | Mandatory| Description               |
173| ----------- | ------ | ---- | --------------------- |
174| resourceFlags | [number](#resourceflag) | Yes  | Type of the resource information to obtain.|
175| callback | AsyncCallback\<Array<[BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md)>> | Yes| Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the resource information of the application obtained. Otherwise, **err** is an error object.|
176
177**Error codes**
178
179For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
180
181| ID| Error Message                             |
182| -------- | ------------------------------------- |
183| 201 | Permission denied. |
184| 202 | Permission denied, non-system app called system api. |
185| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
186
187**Example**
188
189```ts
190import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
191import { BusinessError } from '@ohos.base';
192import hilog from '@ohos.hilog';
193let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
194try {
195    bundleResourceManager.getAllBundleResourceInfo(bundleFlags, (err, data) => {
196        if (err) {
197            hilog.info(0x0000, 'testTag', 'getAllBundleResourceInfo failed. err: %{public}s', err.message);
198            return;
199        }
200        hilog.info(0x0000, 'testTag', 'getAllBundleResourceInfo successfully. Data length: %{public}s', JSON.stringify(data.length));
201    });
202} catch (err) {
203    let message = (err as BusinessError).message;
204    hilog.error(0x0000, 'testTag', 'getAllBundleResourceInfo failed: %{public}s', message);
205}
206```
207
208### bundleResourceManager.getAllBundleResourceInfo
209
210getAllBundleResourceInfo(resourceFlags: [number](#resourceflag)): Promise<Array<[BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md)>>;
211
212Obtains the bundle resource information of all applications based on the given resource flags. This API uses a promise to return the result.
213
214**System API**: This is a system API.
215
216**Required permissions**: ohos.permission.GET_INSTALLED_BUNDLE_LIST and ohos.permission.GET_BUNDLE_RESOURCES
217
218**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
219
220**Parameters**
221
222| Name    | Type  | Mandatory| Description               |
223| ----------- | ------ | ---- | --------------------- |
224| resourceFlags | [number](#resourceflag) | Yes  | Type of the resource information to obtain.|
225
226**Return value**
227
228| Type                                                        | Description                            |
229| ------------------------------------------------------------ | -------------------------------- |
230| Promise\<Array<[BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md)>> | Promise used to return the resource information of the application obtained.|
231
232**Error codes**
233
234For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
235
236| ID| Error Message                             |
237| -------- | ------------------------------------- |
238| 201 | Permission denied. |
239| 202 | Permission denied, non-system app called system api. |
240| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
241
242**Example**
243
244```ts
245import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
246import { BusinessError } from '@ohos.base';
247import hilog from '@ohos.hilog';
248let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
249try {
250    bundleResourceManager.getAllBundleResourceInfo(bundleFlags).then(data=> {
251        hilog.info(0x0000, 'testTag', 'getAllBundleResourceInfo successfully. Data length: %{public}s', JSON.stringify(data.length));
252    }).catch((err: BusinessError) => {
253        hilog.info(0x0000, 'testTag', 'getAllBundleResourceInfo failed. err: %{public}s', err.message);
254    })
255} catch (err) {
256    let message = (err as BusinessError).message;
257    hilog.error(0x0000, 'testTag', 'getAllBundleResourceInfo failed: %{public}s', message);
258}
259```
260
261### bundleResourceManager.getAllLauncherAbilityResourceInfo
262
263getAllLauncherAbilityResourceInfo(resourceFlags: [number](#resourceflag), callback: AsyncCallback<Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)>>): void
264
265Obtains the resource information of the entry abilities of the current application based on the given resource flags. This API uses an asynchronous callback to return the result.
266
267**System API**: This is a system API.
268
269**Required permissions**: ohos.permission.GET_INSTALLED_BUNDLE_LIST and ohos.permission.GET_BUNDLE_RESOURCES
270
271**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
272
273**Parameters**
274
275| Name    | Type  | Mandatory| Description               |
276| ----------- | ------ | ---- | --------------------- |
277| resourceFlags | [number](#resourceflag) | Yes  | Type of the resource information to obtain.|
278| callback | AsyncCallback\<Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)>> | Yes| Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the resource information of the entry abilities obtained. Otherwise, **err** is an error object.|
279
280**Error codes**
281
282For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
283
284| ID| Error Message                             |
285| -------- | ------------------------------------- |
286| 201 | Permission denied. |
287| 202 | Permission denied, non-system app called system api. |
288| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
289
290**Example**
291
292```ts
293import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
294import { BusinessError } from '@ohos.base';
295import hilog from '@ohos.hilog';
296let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
297try {
298    bundleResourceManager.getAllLauncherAbilityResourceInfo(bundleFlags, (err, data) => {
299        if (err) {
300            hilog.info(0x0000, 'testTag', 'getAllLauncherAbilityResourceInfo failed. err: %{public}s', err.message);
301            return;
302        }
303        hilog.info(0x0000, 'testTag', 'getAllLauncherAbilityResourceInfo successfully. Data length: %{public}s', JSON.stringify(data.length));
304    });
305} catch (err) {
306    let message = (err as BusinessError).message;
307    hilog.error(0x0000, 'testTag', 'getAllLauncherAbilityResourceInfo failed: %{public}s', message);
308}
309```
310
311### bundleResourceManager.getAllLauncherAbilityResourceInfo
312
313getAllLauncherAbilityResourceInfo(resourceFlags: [number](#resourceflag)) : Promise<Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)>>
314
315Obtains the resource information of the entry abilities of the current application based on the given resource flags. This API uses a promise to return the result.
316
317**System API**: This is a system API.
318
319**Required permissions**: ohos.permission.GET_INSTALLED_BUNDLE_LIST and ohos.permission.GET_BUNDLE_RESOURCES
320
321**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
322
323**Parameters**
324
325| Name    | Type  | Mandatory| Description               |
326| ----------- | ------ | ---- | --------------------- |
327| resourceFlags | [number](#resourceflag) | Yes  | Type of the resource information to obtain.|
328
329**Return value**
330
331| Type                                                        | Description                            |
332| ------------------------------------------------------------ | -------------------------------- |
333| Promise\<Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)>> | Promise used to return the resource information of the entry abilities obtained.|
334
335**Error codes**
336
337For details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
338
339| ID| Error Message                             |
340| -------- | ------------------------------------- |
341| 201 | Permission denied. |
342| 202 | Permission denied, non-system app called system api. |
343| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
344
345**Example**
346```ts
347import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
348import { BusinessError } from '@ohos.base';
349import hilog from '@ohos.hilog';
350let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
351try {
352    bundleResourceManager.getAllLauncherAbilityResourceInfo(bundleFlags).then(data=> {
353        hilog.info(0x0000, 'testTag', 'getAllLauncherAbilityResourceInfo successfully. Data length: %{public}s', JSON.stringify(data.length));
354    }).catch((err: BusinessError) => {
355        hilog.info(0x0000, 'testTag', 'getAllLauncherAbilityResourceInfo failed. err: %{public}s', err.message);
356    })
357} catch (err) {
358    let message = (err as BusinessError).message;
359    hilog.error(0x0000, 'testTag', 'getAllLauncherAbilityResourceInfo failed: %{public}s', message);
360}
361```
362
363### bundleResourceManager.getBundleResourceInfo<sup>12+</sup>
364
365getBundleResourceInfo(bundleName: string, resourceFlags?: [number](#resourceflag), appIndex?: number): [BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md)
366
367Obtains the resource information of an application based on the given bundle name, resource flags, and app index. This API returns the result synchronously.
368
369**System API**: This is a system API.
370
371**Required permissions**: ohos.permission.GET_BUNDLE_RESOURCES
372
373**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
374
375**Parameters**
376
377| Name    | Type  | Mandatory| Description               |
378| ----------- | ------ | ---- | --------------------- |
379| bundleName | string | Yes  | Bundle name of the application.|
380| resourceFlags | [number](#resourceflag) | No  | Type of the resource information to obtain.|
381| appIndex | number | No  | Index of the application clone. The default value is **0**.|
382
383**Return value**
384
385| Type                                                       | Description                                 |
386| ----------------------------------------------------------- | ------------------------------------- |
387| [BundleResourceInfo](js-apis-bundleManager-BundleResourceInfo-sys.md) | Resource information of the application obtained.|
388
389
390**Error codes**
391
392For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md).
393
394| ID| Error Message                             |
395| -------- | ------------------------------------- |
396| 201 | Permission denied. |
397| 202 | Permission denied, non-system app called system api. |
398| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
399| 17700001 | The specified bundleName is not found. |
400| 17700061 | AppIndex not in valid range or not found. |
401
402
403**Example**
404
405```ts
406import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
407import { BusinessError } from '@ohos.base';
408import hilog from '@ohos.hilog';
409let bundleName = "com.example.myapplication";
410let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
411let appIndex = 1;
412try {
413    let resourceInfo = bundleResourceManager.getBundleResourceInfo(bundleName, bundleFlags, appIndex);
414    hilog.info(0x0000, 'testTag', 'getBundleResourceInfo successfully. Data label: %{public}s', JSON.stringify(resourceInfo.label));
415} catch (err) {
416    let message = (err as BusinessError).message;
417    hilog.error(0x0000, 'testTag', 'getBundleResourceInfo failed: %{public}s', message);
418}
419```
420
421### bundleResourceManager.getLauncherAbilityResourceInfo<sup>12+</sup>
422
423getLauncherAbilityResourceInfo(bundleName: string, resourceFlags?: [number](#resourceflag), appIndex?: number): Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)>
424
425Obtains the launcher ability resource information of an application based on the given bundle name, resource flags, and app index. This API returns the result synchronously.
426
427**System API**: This is a system API.
428
429**Required permissions**: ohos.permission.GET_BUNDLE_RESOURCES
430
431**System capability**: SystemCapability.BundleManager.BundleFramework.Resource
432
433**Parameters**
434
435| Name    | Type  | Mandatory| Description               |
436| ----------- | ------ | ---- | --------------------- |
437| bundleName | string | Yes  | Bundle name of the application.|
438| resourceFlags | [number](#resourceflag) | No  | Type of the resource information to obtain. The default value is **[ResourceFlag](#resourceflag).GET_RESOURCE_INFO_ALL**.|
439| appIndex | number | No  | Index of the application clone. The default value is **0**.|
440
441**Return value**
442
443| Type                                                       | Description                                 |
444| ----------------------------------------------------------- | ------------------------------------- |
445| Array<[LauncherAbilityResourceInfo](js-apis-bundleManager-LauncherAbilityResourceInfo-sys.md)> | Resource information of the entry ability obtained.|
446
447**Error codes**
448
449For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md).
450
451| ID| Error Message                             |
452| -------- | ------------------------------------- |
453| 201 | Permission denied. |
454| 202 | Permission denied, non-system app called system api. |
455| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
456| 17700001 | The specified bundleName is not found. |
457| 17700061 | AppIndex not in valid range or not found. |
458
459**Example**
460
461```ts
462import bundleResourceManager from '@ohos.bundle.bundleResourceManager';
463import { BusinessError } from '@ohos.base';
464import hilog from '@ohos.hilog';
465let bundleName = "com.example.myapplication";
466let bundleFlags = bundleResourceManager.ResourceFlag.GET_RESOURCE_INFO_ALL;
467let appIndex = 1;
468try {
469    let resourceInfo = bundleResourceManager.getLauncherAbilityResourceInfo(bundleName, bundleFlags, appIndex);
470    hilog.info(0x0000, 'testTag', 'getLauncherAbilityResourceInfo successfully. Data label: %{public}s', JSON.stringify(resourceInfo[0].label));
471} catch (err) {
472    let message = (err as BusinessError).message;
473    hilog.error(0x0000, 'testTag', 'getLauncherAbilityResourceInfo failed: %{public}s', message);
474}
475```
476