1# ApplicationInfo
2
3The **ApplicationInfo** module defines the application information. A third-party application can obtain its own application information through [bundleManager.getBundleInfoForSelf](js-apis-bundleManager.md#bundlemanagergetbundleinfoforself), with **GET_BUNDLE_INFO_WITH_APPLICATION** passed in to [bundleFlags](js-apis-bundleManager.md#bundleflag).
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
9## ApplicationInfo
10
11**System capability**: SystemCapability.BundleManager.BundleFramework.Core
12
13| Name                      | Type                                                        | Read-Only| Optional| Description                                                        |
14| -------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
15| name                       | string                                                       | Yes  | No  | Application name.<br>**Atomic service API**: This API can be used in atomic services since API version 11.                                                |
16| description                | string                                                       | Yes  | No  | Description of the application, for example, "description": $string: mainability_description". For details, see the description of the **descriptionResource** field below.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
17| descriptionId              | number                                                       | Yes  | No  | ID of the application description.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
18| enabled                    | boolean                                                      | Yes  | No  | Whether the application is enabled. The default value is **true**.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
19| label                      | string                                                       | Yes  | No  | Application name, for example, "label": "$string: mainability_description". For details, see the description of the **labelResource** field below.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
20| labelId                    | number                                                       | Yes  | No  | ID of the application label.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
21| icon                       | string                                                       | Yes  | No  | Application icon, for example, "icon": "$media:icon". For details, see the description of the **iconResource** field below.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
22| iconId                     | number                                                       | Yes  | No  | ID of the application icon.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
23| process                    | string                                                       | Yes  | No  | Process in which the application runs. If this parameter is not set, the bundle name is used.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
24| permissions                | Array\<string>                                               | Yes  | No  | Permissions required for accessing the application. The permissions can be obtained by passing in **GET_BUNDLE_INFO_WITH_APPLICATION** and **GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION** to the **bundleFlags** parameter of [getBundleInfoForSelf](js-apis-bundleManager.md#bundlemanagergetbundleinfoforself).<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
25| codePath                   | string                                                       | Yes  | No  | Installation directory of the application.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
26| metadata<sup>(deprecated)<sup>  | Map\<string, Array\<[Metadata](js-apis-bundleManager-metadata.md)>> | Yes  | No  | Metadata of the application. The information can be obtained by passing in **GET_BUNDLE_INFO_WITH_APPLICATION** and **GET_BUNDLE_INFO_WITH_METADATA** to the **bundleFlags** parameter of [getBundleInfoForSelf](js-apis-bundleManager.md#bundlemanagergetbundleinfoforself). **NOTE**<br>This field is deprecated since API version 10. You are advised to use **metadataArray** instead.|
27| metadataArray<sup>10+</sup>              | Array\<[ModuleMetadata](#modulemetadata10)> | Yes  | No  | Metadata of the application. The information can be obtained by passing in **GET_BUNDLE_INFO_WITH_APPLICATION** and **GET_BUNDLE_INFO_WITH_METADATA** to the **bundleFlags** parameter of [getBundleInfoForSelf](js-apis-bundleManager.md#bundlemanagergetbundleinfoforself).<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
28| removable                  | boolean                                                      | Yes  | No  | Whether the application is removable.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
29| accessTokenId             | number                                                       | Yes  | No  | Access token ID of the application.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
30| uid                       | number                                                       | Yes  | No  | UID of the application.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
31| iconResource              | [Resource](../apis-localization-kit/js-apis-resource-manager.md#resource9) | Yes| No| Resource information of the application icon. The resource information obtained contains the bundle name, module name, and ID of the resource. You can call [getMediaContent](../apis-localization-kit/js-apis-resource-manager.md#getmediacontent9) to obtain the resource details.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
32| labelResource             | [Resource](../apis-localization-kit/js-apis-resource-manager.md#resource9) | Yes| No| Resource information of the application label. The resource information obtained contains the bundle name, module name, and ID of the resource. You can call [getMediaContent](../apis-localization-kit/js-apis-resource-manager.md#getmediacontent9) to obtain the resource details.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
33| descriptionResource       | [Resource](../apis-localization-kit/js-apis-resource-manager.md#resource9) | Yes| No| Resource information of the application description. The resource information obtained contains the bundle name, module name, and ID of the resource. You can call [getMediaContent](../apis-localization-kit/js-apis-resource-manager.md#getmediacontent9) to obtain the resource details.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
34| appDistributionType       | string                                                       | Yes  | No  | Distribution type of the application signing certificate. The options are **app_gallery**, **enterprise**, **os_integration**, and **crowdtesting**.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
35| appProvisionType          | string                                                       | Yes  | No  | Type of the application signing certificate file. The options are **debug** and **release**.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
36| systemApp          | boolean                                                       | Yes  | No  | Whether the application is a system application.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
37| bundleType                |[bundleManager.BundleType](js-apis-bundleManager.md#bundletype)             | Yes  | No  | Bundle type, which can be **APP** (application) or **ATOMIC_SERVICE** (atomic service).<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
38| debug<sup>10+</sup>       | boolean                                | Yes  | No  | Whether the application is in debugging mode. The default value is **false**.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
39| dataUnclearable<sup>11+</sup>       | boolean                      | Yes  | No  | Whether the application data is unclearable. The value **true** means that the application data is unclearable, and **false** means the opposite. The default value is **false**.<br>**Atomic service API**: This API can be used in atomic services since API version 11.|
40| nativeLibraryPath<sup>12+</sup> | string                                                                     | Yes  | No  | Local library file path of the application.                                                 |
41| multiAppMode<sup>12+</sup> | [MultiAppMode](#multiappmode12) | Yes  | No  | Multi-app mode.|
42| appIndex<sup>12+</sup>    | number    | Yes  | No  | Index of an application clone. It takes effect only for cloned applications.|
43| installSource<sup>12+</sup>    | string    | Yes  | No  | Installation source of the application. **pre-installed** indicates that the application is pre-installed. A value in the form of a bundle name indicates that the application is installed by an application with the given bundle name. **unknown** indicates that the installation source is unknown.<br>**Atomic service API**: This API can be used in atomic services since API version 12.|
44| releaseType<sup>12+</sup>    | string    | Yes  | No  | Release type of the SDK used for application packing. Currently, the SDK release types include Canary, Beta, and Release. Each of the Canary and Beta releases can be distinguished by a sequential number, such as Canary1, Canary2, Beta1, and Beta2. You can compare the SDK release type on which application packaging depends and the OS release type (specified by [deviceInfo.distributionOSReleaseType](../apis-basic-services-kit/js-apis-device-info.md)) to determine the compatibility.<br>**Atomic service API**: This API can be used in atomic services since API version 12.|
45| cloudFileSyncEnabled<sup>12+</sup>    | boolean    | Yes  | No  | Whether device-cloud file synchronization is enabled for the application. The value **true** means that device-cloud file synchronization is enabled, and **false** means the opposite.<br>**Atomic service API**: This API can be used in atomic services since API version 12.|
46
47## MultiAppMode<sup>12+</sup>
48Describes the multi-app mode.
49
50**System capability**: SystemCapability.BundleManager.BundleFramework.Core
51
52**Parameters**
53
54| Name     | Type          | Read-Only| Optional| Description                       |
55| --------- | -------------- | ---- | ---- | --------------------------- |
56| multiAppModeType<sup>12+</sup> | bundleManager.MultiAppModeType | Yes| No|  Type of the multi-app mode. |
57| maxCount<sup>12+</sup> | number  | Yes| No|  Maximum number of accounts that can log in to the application at the same time. |
58
59## ModuleMetadata<sup>10+</sup>
60
61Describes the metadata of a module.
62
63 **Atomic service API**: This API can be used in atomic services since API version 11.
64
65 **System capability**: SystemCapability.BundleManager.BundleFramework.Core
66
67| Name     | Type          | Read-Only| Optional| Description                       |
68| --------- | -------------- | ---- | ---- | --------------------------- |
69| moduleName<sup>10+</sup>| string         | Yes  | No  | Module name.  |
70| metadata<sup>10+</sup>  | Array\<[Metadata](js-apis-bundleManager-metadata.md)>      | Yes  | No  | Metadata list of the module.|
71