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