# @ohos.bundle.launcherBundleManager (launcherBundleManager) (System API) The **bundle.launcherBundleManager** module providers APIs for the **Home Screen** application to obtain the [launcher ability information](js-apis-bundleManager-launcherAbilityInfo-sys.md) and [shortcut information](js-apis-bundleManager-shortcutInfo-sys.md). > **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 provided by this module are system APIs. ## Modules to Import ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; ``` ## launcherBundleManager.getLauncherAbilityInfo9+ getLauncherAbilityInfo(bundleName: string, userId: number, callback: AsyncCallback\\>) : void Obtains the launcher ability information based on the given bundle name and user ID. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | -------------- | | bundleName | string | Yes | Bundle name.| | userId | number | Yes | User ID.| | callback | AsyncCallback\\> | Yes| Callback used to return the **LauncherAbilityInfo** object obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700001 | The specified bundle name is not found. | | 17700004 | The specified user ID is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { launcherBundleManager.getLauncherAbilityInfo('com.example.demo', 100, (errData: BusinessError, data: launcherBundleManager.LauncherAbilityInfo[]) => { if (errData !== null) { console.error(`errData is errCode:${errData.code} message:${errData.message}`); } else { console.log("data is " + JSON.stringify(data)); } }) } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getLauncherAbilityInfo9+ getLauncherAbilityInfo(bundleName: string, userId: number) : Promise\\> Obtains the launcher ability information based on the given bundle name and user ID. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | -------------- | | bundleName | string | Yes | Bundle name.| | userId | number | Yes | User ID.| **Return value** | Type | Description | | ----------------------------- | -------------------------------------------------- | | Promise\\> | Promise used to return the **LauncherAbilityInfo** object obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700001 | The specified bundle name is not found. | | 17700004 | The specified user ID is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { launcherBundleManager.getLauncherAbilityInfo("com.example.demo", 100) .then((data: launcherBundleManager.LauncherAbilityInfo[]) => { console.log("data is " + JSON.stringify(data)); }).catch ((errData: BusinessError) => { console.error(`errData is errCode:${errData.code} message:${errData.message}`); }) } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getLauncherAbilityInfoSync10+ getLauncherAbilityInfoSync(bundleName: string, userId: number) : Array\<[LauncherAbilityInfo](js-apis-bundleManager-launcherAbilityInfo-sys.md)\> Obtains the launcher ability information based on the given bundle name and user ID. This API returns the result synchronously. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | -------------- | | bundleName | string | Yes | Bundle name.| | userId | number | Yes | User ID.| **Return value** | Type | Description | | ----------------------------- | -------------------------------------------------- | | Array\<[LauncherAbilityInfo](js-apis-bundleManager-launcherAbilityInfo-sys.md)\> | Array of the **LauncherAbilityInfo** objects obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700001 | The specified bundle name is not found. | | 17700004 | The specified user ID is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { let data = launcherBundleManager.getLauncherAbilityInfoSync("com.example.demo", 100); console.log("data is " + JSON.stringify(data)); } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getAllLauncherAbilityInfo9+ getAllLauncherAbilityInfo(userId: number, callback: AsyncCallback\\>) : void Obtains the launcher ability information of all applications based on the given user ID. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | -------------- | | userId | number | Yes | User ID.| | callback | AsyncCallback\\> | Yes| Callback used to return the array of **LauncherAbilityInfo** objects obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700004 | The specified user ID is not found. | Example ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { launcherBundleManager.getAllLauncherAbilityInfo(100, (errData: BusinessError, data: launcherBundleManager.LauncherAbilityInfo[]) => { if (errData !== null) { console.error(`errData is errCode:${errData.code} message:${errData.message}`); } else { console.log("data is " + JSON.stringify(data)); } }); } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getAllLauncherAbilityInfo9+ getAllLauncherAbilityInfo(userId: number) : Promise\\> Obtains the launcher ability information of all applications based on the given user ID. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | -------------- | | userId | number | Yes | User ID.| **Return value** | Type | Description | | ----------------------------- | ------------------------------------------------------ | | Promise\\> | Promise used to return the array of **LauncherAbilityInfo** objects obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700004 | The specified user ID is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { launcherBundleManager.getAllLauncherAbilityInfo(100) .then((data: launcherBundleManager.LauncherAbilityInfo[]) => { console.log("data is " + JSON.stringify(data)); }).catch ((errData: BusinessError) => { console.error(`errData is errCode:${errData.code} message:${errData.message}`); }); } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getShortcutInfo9+ getShortcutInfo(bundleName :string, callback: AsyncCallback\\>) : void Obtains the shortcut information of the current user based on the given bundle name. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | -------------- | | bundleName | string | Yes | Bundle name.| | callback | AsyncCallback\\> | Yes| Callback used to return the **ShortcutInfo** object obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700001 | The specified bundle name is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { launcherBundleManager.getShortcutInfo("com.example.demo", (errData: BusinessError, data: launcherBundleManager.ShortcutInfo[]) => { if (errData !== null) { console.error(`errData is errCode:${errData.code} message:${errData.message}`); } else { console.log("data is " + JSON.stringify(data)); } }); } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getShortcutInfo9+ getShortcutInfo(bundleName : string) : Promise\\> Obtains the shortcut information of the current user based on the given bundle name. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | -------------- | | bundleName | string | Yes | Bundle name.| **Return value** | Type | Description | | ---------------------- | ----------------------------------------------- | | Promise\\> | Promise used to return the **ShortcutInfo** object obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700001 | The specified bundle name is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { launcherBundleManager.getShortcutInfo("com.example.demo") .then((data: launcherBundleManager.ShortcutInfo[]) => { console.log("data is " + JSON.stringify(data)); }).catch ((errData: BusinessError) => { console.error(`errData is errCode:${errData.code} message:${errData.message}`); }); } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getShortcutInfoSync10+ getShortcutInfoSync(bundleName : string) : Array\<[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)\> Obtains the shortcut information of the current user based on the given bundle name. This API returns the result synchronously. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | -------------- | | bundleName | string | Yes | Bundle name.| **Return value** | Type | Description | | ---------------------- | ----------------------------------------------- | | Array\<[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)\> | Array of the **ShortcutInfo** objects obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700001 | The specified bundle name is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { let data = launcherBundleManager.getShortcutInfoSync("com.example.demo"); console.log("data is " + JSON.stringify(data)); } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.getShortcutInfoSync13+ getShortcutInfoSync(bundleName: string, userId: number) : Array\<[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)\> Obtains the shortcut information of the specified user based on the given bundle name. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | -------------- | | bundleName | string | Yes | Bundle name.| | userId | number | Yes | User ID. | **Return value** | Type | Description | | ---------------------- | ----------------------------------------------- | | Array\<[ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md)\> | Array of the **ShortcutInfo** objects obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700001 | The specified bundle name is not found. | | 17700004 | The specified user ID is not found. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { let data = launcherBundleManager.getShortcutInfoSync("com.example.demo", 100); console.log("data is " + JSON.stringify(data)); } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ``` ## launcherBundleManager.startShortcut12+ startShortcut(shortcutInfo: ShortcutInfo, options?: StartOptions): Promise\; Starts the ability in the specified [ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md). **Required permissions**: ohos.permission.START_SHORTCUT **System API**: This is a system API. **System capability**: SystemCapability.BundleManager.BundleFramework.Launcher **Parameters** | Name | Type | Mandatory| Description | | ------------ | ------ | ---- | -------------- | | shortcutInfo | [ShortcutInfo](js-apis-bundleManager-shortcutInfo-sys.md) | Yes | Shortcut information of the application.| | options | [StartOptions](js-apis-app-ability-startOptions-sys.md) | No | Startup parameters, which are used to specify the window mode and device ID for switching the mission to the foreground.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Bundle Error Codes](errorcode-bundle.md). | ID| Error Message | | -------- | ---------------------------------------- | | 201 | Permission denied. | | 202 | Permission denied, non-system app called system api. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.| | 801 | Capability not support. | | 17700065 | The ability specified by want in the ShortcutInfo struct cannot be started. | **Example** ```ts import launcherBundleManager from '@ohos.bundle.launcherBundleManager'; import { BusinessError } from '@ohos.base'; try { let data : Array = launcherBundleManager.getShortcutInfoSync("com.example.demo"); console.log("data is " + JSON.stringify(data)); if (data) { try { launcherBundleManager.startShortcut(data[0]) .then(() => { console.log("startShortcut success"); }).catch ((err: BusinessError) => { console.error(`errData is errCode:${err.code} message:${err.message}`); }); } catch (error) { let code = (error as BusinessError).code; let message = (error as BusinessError).message; console.error(`error is errCode:${code} message:${message}`); } } } catch (errData) { let code = (errData as BusinessError).code; let message = (errData as BusinessError).message; console.error(`errData is errCode:${code} message:${message}`); } ```