1# @ohos.app.businessAbilityRouter (业务路由模块)(系统接口) 2<!--Kit: Ability Kit--> 3<!--Subsystem: Ability--> 4<!--Owner: @zhu-feimo--> 5<!--Designer: @ccllee1--> 6<!--Tester: @lixueqing513--> 7<!--Adviser: @huipeizi--> 8 9本模块用于查询当前设备上安装的应用程序的路由Ability信息。系统通过业务路由提供标准化的业务模板和管理能力,允许开发者依据特定业务类别注册标准业务,构建一个庞大且丰富的业务超市。系统应用可以便捷地从业务路由中挑选并获取合适的业务进行使用。同时业务路由还提供统一的跳转管控规则,确保应用与业务之间合理跳转,防止非法前后台跳转,杜绝三方应用通过跳转变相分发,从而保障系统的安全性与良好的用户体验。 10 11> **说明:** 12> 13> 本模块首批接口从API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14> 15>本模块接口为系统接口。 16 17## 导入模块 18 19``` ts 20import businessAbilityRouter from '@ohos.app.businessAbilityRouter'; 21``` 22 23## 权限列表 24 25| 权限 | 权限等级 | 描述 | 26| ------------------------------------------ | ------------ | -------------------- | 27| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息。 | 28 29权限等级参考[权限APL等级说明](../../security/AccessToken/app-permission-mgmt-overview.md#权限机制中的基本概念)。 30 31## BusinessType 32 33此枚举值用于标识过滤条件类型。 34 35**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 36 37**系统接口**:此接口为系统接口。 38 39| 名称 | 值 | 说明 | 40| ----------- | ---- | ------------------------------------ | 41| SHARE | 0 | 标识具有共享类型的Ability信息。 | 42| UNSPECIFIED | 255 | 标识未指定类型的Ability信息。 | 43 44## BusinessAbilityFilter 45 46此过滤值用于过滤查询的Ability类型。 47 48**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 49 50**系统接口**:此接口为系统接口。 51 52| 名称 | 类型 | 只读 | 可选 | 说明 | 53| ------------ | ------------ | ---- | ---- | -------------------------------------- | 54| businessType | [BusinessType](#businesstype) | 否 | 否 | 标识Ability信息的类型。 | 55| mimeType | string | 否 | 是 | 标识支持mime类型的Ability信息。 | 56| uri | string | 否 | 是 | 标识Ability信息支持的uri。 | 57 58## businessAbilityRouter.queryBusinessAbilityInfo 59 60queryBusinessAbilityInfo(filter: BusinessAbilityFilter, callback: AsyncCallback\<Array\<BusinessAbilityInfo\>\>): void; 61 62通过给定的过滤条件查询Ability信息。使用callback异步回调,成功时返回查询到的路由Ability信息,失败时返回错误信息。 63 64**需要权限**:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 65 66**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 67 68**系统接口**:此接口为系统接口。 69 70**参数:** 71 72| 参数名 | 类型 | 必填 | 说明 | 73| ----------- | ------ | ---- | --------------------------------------- | 74| filter | [BusinessAbilityFilter](#businessabilityfilter) | 是 | 用于按业务类型过滤的对象。 | 75| callback | AsyncCallback\<Array\<[BusinessAbilityInfo](js-apis-bundleManager-businessAbilityInfo-sys.md#businessabilityinfo)\>\> | 是 | 回调函数。返回查询到的Ability信息,否则为错误对象。 | 76 77**错误码**: 78 79以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 80 81| 错误码ID | 错误信息 | 82| ------- | -------- | 83| 201 | Permission denied. | 84| 202 | Not System App. Interface caller is not a system app. | 85| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed. | 86 87**示例:** 88 89```ts 90import businessAbilityRouter from '@ohos.app.businessAbilityRouter'; 91import { BusinessError } from '@ohos.base'; 92 93let filter: businessAbilityRouter.BusinessAbilityFilter = {businessType: businessAbilityRouter.BusinessType.SHARE}; 94 95try { 96 businessAbilityRouter.queryBusinessAbilityInfo(filter, (error, data) => { 97 if (error) { 98 console.error('queryBusinessAbilityInfo failed ' + error.message); 99 return; 100 } 101 console.info('queryBusinessAbilityInfo success'); 102 }); 103} catch (error) { 104 let message = (error as BusinessError).message; 105 console.error('queryBusinessAbilityInfo failed ' + message); 106} 107``` 108 109## businessAbilityRouter.queryBusinessAbilityInfo 110 111queryBusinessAbilityInfo(filter: BusinessAbilityFilter): Promise\<Array\<BusinessAbilityInfo\>\>; 112 113通过给定的过滤条件查询Ability信息。使用Promise异步回调,成功时返回查询到的路由Ability信息,失败时返回错误信息。 114 115**需要权限**:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 116 117**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 118 119**系统接口**:此接口为系统接口。 120 121**参数:** 122 123| 参数名 | 类型 | 必填 | 说明 | 124| ----------- | ------------------------------- | ---- | --------------------------------------- | 125| filter | [BusinessAbilityFilter](#businessabilityfilter) | 是 | 包含要查询的Ability信息的筛选类型。 | 126 127**返回值:** 128 129| 类型 | 说明 | 130| ------------------------------------------------------------ | ------------------------------------------- | 131| Promise\<Array\<[BusinessAbilityInfo](js-apis-bundleManager-businessAbilityInfo-sys.md#businessabilityinfo)\>\> | Promise对象,返回符合过滤条件的Ability信息。 | 132 133**错误码**: 134 135以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 136 137| 错误码ID | 错误信息 | 138| ------- | -------- | 139| 201 | Permission denied. | 140| 202 | Not System App. Interface caller is not a system app. | 141| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 3. Parameter verification failed. | 142 143**示例:** 144 145```ts 146import businessAbilityRouter from '@ohos.app.businessAbilityRouter'; 147import { BusinessError } from '@ohos.base'; 148 149let filter: businessAbilityRouter.BusinessAbilityFilter = {businessType: businessAbilityRouter.BusinessType.SHARE}; 150 151try { 152 businessAbilityRouter.queryBusinessAbilityInfo(filter) 153 .then(() => { 154 console.info('queryBusinessAbilityInfo success'); 155 }).catch((error: BusinessError) => { 156 console.error('queryBusinessAbilityInfo failed ' + error.message); 157 }); 158} catch (error) { 159 let message = (error as BusinessError).message; 160 console.error('queryBusinessAbilityInfo failed ' + message); 161} 162``` 163