@ohos.bundle.launcherBundleManager (launcherBundleManager Module) (System API)
The module providers APIs for launcher applications (applications with icons on the home screen) to obtain the launcher ability information and shortcut information.
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
import { launcherBundleManager } from '@kit.AbilityKit';
launcherBundleManager.getLauncherAbilityInfo
getLauncherAbilityInfo(bundleName: string, userId: number, callback: AsyncCallback<Array<LauncherAbilityInfo>>) : 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, which can be obtained by calling getOsAccountLocalId. |
| callback | AsyncCallback<Array<LauncherAbilityInfo>> | Yes | Callback used to return the result. If the operation is successful, err is null, and data is the array of LauncherAbilityInfo objects obtained. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
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.info('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.getLauncherAbilityInfo
getLauncherAbilityInfo(bundleName: string, userId: number) : Promise<Array<LauncherAbilityInfo>>
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, which can be obtained by calling getOsAccountLocalId. |
Return value
| Type | Description |
|---|---|
| Promise<Array<LauncherAbilityInfo>> | Promise used to return the array of LauncherAbilityInfo objects obtained. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
launcherBundleManager.getLauncherAbilityInfo("com.example.demo", 100)
.then((data: launcherBundleManager.LauncherAbilityInfo[]) => {
console.info('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.getAllLauncherAbilityInfo
getAllLauncherAbilityInfo(userId: number, callback: AsyncCallback<Array<LauncherAbilityInfo>>) : 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, which can be obtained by calling getOsAccountLocalId. |
| callback | AsyncCallback<Array<LauncherAbilityInfo>> | Yes | Callback used to return the result. If the operation is successful, err is null, and data is the array of LauncherAbilityInfo objects obtained. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
launcherBundleManager.getAllLauncherAbilityInfo(100,
(errData: BusinessError, data: launcherBundleManager.LauncherAbilityInfo[]) => {
if (errData !== null) {
console.error(`errData is errCode:${errData.code} message:${errData.message}`);
} else {
console.info('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.getAllLauncherAbilityInfo
getAllLauncherAbilityInfo(userId: number) : Promise<Array<LauncherAbilityInfo>>
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, which can be obtained by calling getOsAccountLocalId. |
Return value
| Type | Description |
|---|---|
| Promise<Array<LauncherAbilityInfo>> | Promise used to return the array of LauncherAbilityInfo objects obtained. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
launcherBundleManager.getAllLauncherAbilityInfo(100)
.then((data: launcherBundleManager.LauncherAbilityInfo[]) => {
console.info('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.getShortcutInfo
getShortcutInfo(bundleName :string, callback: AsyncCallback<Array<ShortcutInfo>>) : void
Obtains the shortcut information of the current user based on the given bundle name of a main application. To obtain shortcut information about an application clone, use getShortcutInfoByAppIndex. This API uses an asynchronous callback to return the result.
No permission is required for obtaining the caller's own information.
Required permissions: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO
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<Array<ShortcutInfo>> | Yes | Callback used to return the result. If the operation is successful, err is null, and data is the array of ShortcutInfo objects obtained. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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. |
| 17700026 | The specified bundle is disabled. |
Example
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
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.info('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.getShortcutInfo
getShortcutInfo(bundleName : string) : Promise<Array<ShortcutInfo>>
Obtains the shortcut information of the current user based on the given bundle name of a main application. To obtain shortcut information about an application clone, use getShortcutInfoByAppIndex. This API uses a promise to return the result.
No permission is required for obtaining the caller's own information.
Required permissions: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO
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<Array<ShortcutInfo>> | Promise used to return the array of ShortcutInfo objects obtained. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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. |
| 17700026 | The specified bundle is disabled. |
Example
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
launcherBundleManager.getShortcutInfo("com.example.demo")
.then((data: launcherBundleManager.ShortcutInfo[]) => {
console.info('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>
Obtains the shortcut information of the current user based on the given bundle name of a main application. To obtain shortcut information about an application clone, use getShortcutInfoByAppIndex.
No permission is required for obtaining the caller's own information.
Required permissions: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO
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> | Array of the ShortcutInfo objects obtained. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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. |
| 17700026 | The specified bundle is disabled. |
Example
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let data = launcherBundleManager.getShortcutInfoSync("com.example.demo");
console.info('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>
Obtains the shortcut information of the specified user based on the given bundle name of a main application. To obtain shortcut information about an application clone, use getShortcutInfoByAppIndex.
No permission is required for obtaining the caller's own information.
Required permissions: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO
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, which can be obtained by calling getOsAccountLocalId. |
Return value
| Type | Description |
|---|---|
| Array<ShortcutInfo> | Array of the ShortcutInfo objects obtained. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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. |
| 17700026 | The specified bundle is disabled. |
Example
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let data = launcherBundleManager.getShortcutInfoSync("com.example.demo", 100);
console.info('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<void>
Starts an ability based on the specified shortcut information. This API uses a promise to return the result.
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 | Yes | Shortcut information of the application. |
| options | StartOptions | No | Startup parameters, which are used to specify the window mode and device ID for switching the mission to the foreground. |
Return value
| Type | Description |
|---|---|
| Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify 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 specified shortcut want in shortcut info is not supported to be started. |
Example
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let data: Array<launcherBundleManager.ShortcutInfo> = launcherBundleManager.getShortcutInfoSync("com.example.demo");
console.info('data is ' + JSON.stringify(data));
if (data) {
try {
launcherBundleManager.startShortcut(data[0])
.then(() => {
console.info('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}`);
}
launcherBundleManager.startShortcutWithReason20+
startShortcutWithReason(shortcutInfo: ShortcutInfo, startReason: string, options?: StartOptions): Promise<void>
Starts an ability based on the specified shortcut information, and carries the reason for the shortcut launch. This API uses a promise to return the result.
The launched ability can obtain the launch reason through the launchReasonMessage field of LaunchParam and handle service logic accordingly.
Required permissions: ohos.permission.START_SHORTCUT and ohos.permission.SET_LAUNCH_REASON_MESSAGE (If the caller has the ohos.permission.START_SHORTCUT permission but not the ohos.permission.SET_LAUNCH_REASON_MESSAGE permission, the ability can be started, but the shortcut launch reason carried is invalid.)
System API: This is a system API.
System capability: SystemCapability.BundleManager.BundleFramework.Launcher
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| shortcutInfo | ShortcutInfo | Yes | Shortcut information of the application. |
| startReason | string | Yes | Reason for launching the shortcut. The value can be AbilityConstant.REASON_MESSAGE_DESKTOP_SHORTCUT, indicating a home screen shortcut launch. |
| options | StartOptions | No | Parameters used to specify the window mode of the target ability. |
Return value
| Type | Description |
|---|---|
| Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify permission denied. |
| 202 | Permission denied, non-system app called system api. |
| 801 | Capability not support. |
| 17700065 | The specified shortcut want in shortcut info is not supported to be started. |
Example
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { AbilityConstant } from '@kit.AbilityKit';
try {
let data: Array<launcherBundleManager.ShortcutInfo> =
launcherBundleManager.getShortcutInfoSync("com.example.myapplication");
console.info('startShortcutWithReason data is ' + JSON.stringify(data));
let startReason = AbilityConstant.REASON_MESSAGE_DESKTOP_SHORTCUT;
if (data) {
try {
launcherBundleManager.startShortcutWithReason(data[0], startReason)
.then(() => {
console.info('startShortcutWithReason success');
}).catch((err: BusinessError) => {
console.error(`startShortcutWithReason errData is errCode:${err.code} message:${err.message}`);
});
} catch (error) {
let code = (error as BusinessError).code;
let message = (error as BusinessError).message;
console.error(`startShortcutWithReason error is errCode:${code} message:${message}`);
}
}
} catch (errData) {
let code = (errData as BusinessError).code;
let message = (errData as BusinessError).message;
console.error(`startShortcutWithReason errData is errCode:${code} message:${message}`);
}
launcherBundleManager.getShortcutInfoByAppIndex20+
getShortcutInfoByAppIndex(bundleName: string, appIndex: number): Array<ShortcutInfo>
Obtains the shortcut information of the current user based on the index of an application clone.
No permission is required for obtaining the caller's own information.
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. |
| appIndex | number | Yes | Index of the application clone. |
Return value
| Type | Description |
|---|---|
| Array<ShortcutInfo> | Array of the ShortcutInfo objects obtained. |
Error codes
For details about the error codes, see Universal Error Codes and Bundle Error Codes.
| ID | Error Message |
|---|---|
| 201 | Verify permission denied. |
| 202 | Permission denied, non-system app called system api. |
| 801 | Capability not support. |
| 17700001 | The specified bundle name is not found. |
| 17700061 | The specified app index is invalid. |
Example
import { launcherBundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
let data = launcherBundleManager.getShortcutInfoByAppIndex("com.example.demo", 1);
console.info('getShortcutInfoByAppIndex successfully, data is ' + JSON.stringify(data));
} catch (errData) {
let code = (errData as BusinessError).code;
let message = (errData as BusinessError).message;
console.error(`Failed to getShortcutInfoByAppIndex. Code: ${code}, message: ${message}`);
}