@ohos.bundle.launcherBundleManager (launcherBundleManager模块)(系统接口)

本模块支持launcher应用(桌面有图标的应用)所需的查询能力,支持LauncherAbilityInfoShortcutInfo信息的查询。

说明:

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块为系统接口。

导入模块

import { launcherBundleManager } from '@kit.AbilityKit';

launcherBundleManager.getLauncherAbilityInfo

getLauncherAbilityInfo(bundleName: string, userId: number, callback: AsyncCallback<Array<LauncherAbilityInfo>>) : void

查询指定bundleName及用户的LauncherAbilityInfo。使用callback异步回调。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。
userId number 被查询的用户ID,可以通过getOsAccountLocalId接口获取。
callback AsyncCallback<Array<LauncherAbilityInfo>> 回调函数。当函数调用成功,err为undefined,data为bundle包含的LauncherAbilityInfo信息。否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>>

查询指定bundleName及用户的LauncherAbilityInfo。使用Promise异步回调。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。
userId number 被查询的用户ID,可以通过getOsAccountLocalId接口获取。

返回值:

类型 说明
Promise<Array<LauncherAbilityInfo>> Promise对象。返回bundle包含的LauncherAbilityInfo信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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

查询指定用户下所有应用的LauncherAbilityInfo。使用callback异步回调。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
userId number 被查询的用户ID,可以通过getOsAccountLocalId接口获取。
callback AsyncCallback<Array<LauncherAbilityInfo>> 回调函数。当函数调用成功,err为undefined,data为指定用户下所有应用的LauncherAbilityInfo信息。否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>>

查询指定用户下所有应用的LauncherAbilityInfo。使用Promise异步回调。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
userId number 被查询的用户ID,可以通过getOsAccountLocalId接口获取。

返回值:

类型 说明
Promise<Array<LauncherAbilityInfo>> Promise对象。返回指定用户下所有应用的LauncherAbilityInfo

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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

查询当前用户下指定应用的快捷方式信息ShortcutInfo,只支持查询主应用的ShortcutInfo,查询分身应用请使用getShortcutInfoByAppIndex。使用callback异步回调。

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。
callback AsyncCallback<Array<ShortcutInfo>> 回调函数。当函数调用成功,err为undefined,data为当前用户下指定应用的ShortcutInfo信息。否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>>

查询当前用户下指定应用的快捷方式信息ShortcutInfo,只支持查询主应用的ShortcutInfo,查询分身应用请使用getShortcutInfoByAppIndex。使用Promise异步回调。

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。

返回值:

类型 说明
Promise<Array<ShortcutInfo>> Promise对象。返回当前用户下指定应用的ShortcutInfo

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>

查询当前用户下指定应用的快捷方式信息ShortcutInfo,只支持查询主应用的ShortcutInfo,查询分身应用请使用getShortcutInfoByAppIndex

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。

返回值:

类型 说明
Array<ShortcutInfo> Array形式返回当前用户下指定应用的ShortcutInfo

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>

查询指定用户下指定应用的快捷方式信息ShortcutInfo,只支持查询主应用的ShortcutInfo,查询分身应用请使用getShortcutInfoByAppIndex

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。

返回值:

类型 说明
Array<ShortcutInfo> Array形式返回指定用户下指定应用的ShortcutInfo

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>

拉起指定ShortcutInfo中的ability。使用Promise异步回调。

需要权限: ohos.permission.START_SHORTCUT

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
shortcutInfo ShortcutInfo 应用的快捷方式信息。
options StartOptions 启动参数选项,用于指定任务切到前台时的窗口模式,设备ID等。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>

根据指定的快捷方式信息,拉起对应的Ability,并携带快捷方式的启动原因。使用Promise异步回调。

被拉起方可以通过LaunchParam的launchReasonMessage字段获取到启动原因,并根据启动原因进行业务逻辑处理。

需要权限: ohos.permission.START_SHORTCUT 和 ohos.permission.SET_LAUNCH_REASON_MESSAGE (如果调用方有ohos.permission.START_SHORTCUT权限,没有ohos.permission.SET_LAUNCH_REASON_MESSAGE权限,Ability可以被拉起,但是携带的快捷方式启动原因无效)

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
shortcutInfo ShortcutInfo 应用的快捷方式信息。
startReason string 快捷方式的启动原因,取值包括:AbilityConstant.REASON_MESSAGE_DESKTOP_SHORTCUT,表示桌面快捷方式启动。
options StartOptions 启动Ability所携带的参数,用于指定目标Ability的窗口模式。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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>

查询当前用户下指定分身应用的快捷方式信息ShortcutInfo

调用方获取自己的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统接口: 此接口为系统接口。

系统能力: SystemCapability.BundleManager.BundleFramework.Launcher

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。
appIndex number 分身应用的索引。

返回值:

类型 说明
Array<ShortcutInfo> Array形式返回当前用户下指定分身应用的ShortcutInfo

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
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.

示例:

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}`);
}