1# @ohos.app.businessAbilityRouter (Business Ability Router) 2 3The **businessAbilityRouter** module provides APIs for you to query the business ability information of applications installed on the device. It provides a unified template for you to register standard services by type. Based on the information, a system application or third-party application can obtain services that meet certain criteria and select a proper service. The module also provides unified rules to manage redirection between applications and services. It prevents arbitrary switching between the foreground and background and avoids the distribution of third-party applications by means of redirection. 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8 9The APIs provided by this module are system APIs. 10 11## Modules to Import 12 13``` ts 14import businessAbilityRouter from '@ohos.app.businessAbilityRouter'; 15``` 16 17## Required Permissions 18 19| Permission | APL | Description | 20| ------------------------------------------ | ------------ | -------------------- | 21| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | Permission to query information about all bundles.| 22 23For details, see [Permission APL](../../security/AccessToken/app-permission-mgmt-overview.md#permission-apl). 24 25## BusinessType 26 27Enumerates the types of business abilities. 28 29**System capability**: SystemCapability.Ability.AbilityRuntime.Core 30 31**System API**: This is a system API. 32 33| Name | Value | Description | 34| ----------- | ---- | ------------------------------------ | 35| SHARE | 0 | Business ability of the share type.| 36| UNSPECIFIED | 255 | Business ability of an unspecified type. | 37 38## BusinessAbilityFilter 39 40Describes the criteria for filtering business abilities. 41 42**System capability**: SystemCapability.Ability.AbilityRuntime.Core 43 44**System API**: This is a system API. 45 46| Name | Type | Read-only| Mandatory| Description | 47| ------------ | ------------ | ---- | ---- | -------------------------------------- | 48| businessType | [BusinessType](#businesstype) | No | Yes | Type of the business ability. | 49| mimeType | string | No | No | MIME type supported by the business ability.| 50| uri | string | No | No | URI supported by the business ability. | 51 52## businessAbilityRouter.queryBusinessAbilityInfo 53 54queryBusinessAbilityInfo(filter: BusinessAbilityFilter, callback: AsyncCallback\<Array\<BusinessAbilityInfo\>\>): void; 55 56Obtains the business ability information based on the specified filter criteria. This API uses an asynchronous callback to return the result. If the operation is successful, the business ability information is returned; otherwise, an error object is returned. 57 58**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 59 60**System capability**: SystemCapability.Ability.AbilityRuntime.Core 61 62**System API**: This is a system API. 63 64**Parameters** 65 66| Name | Type | Mandatory | Description | 67| ----------- | ------ | ---- | --------------------------------------- | 68| filter | [BusinessAbilityFilter](#businessabilityfilter) | Yes | Object used to filter the business abilities.| 69| callback | AsyncCallback\<Array\<[BusinessAbilityInfo](js-apis-bundleManager-businessAbilityInfo.md#businessabilityinfo)\>\> | Yes| Callback used to return the result. If the operation is successful, the business ability information that meets the filter criteria is returned; otherwise, an error object is returned.| 70 71**Example** 72 73```ts 74import businessAbilityRouter from '@ohos.app.businessAbilityRouter'; 75import { BusinessError } from '@ohos.base'; 76 77let filter: businessAbilityRouter.BusinessAbilityFilter = {businessType: businessAbilityRouter.BusinessType.SHARE}; 78 79try { 80 businessAbilityRouter.queryBusinessAbilityInfo(filter, (error, data) => { 81 if (error) { 82 console.error('queryBusinessAbilityInfo failed ' + error.message); 83 return; 84 } 85 console.info('queryBusinessAbilityInfo success'); 86 }); 87} catch (error) { 88 let message = (error as BusinessError).message; 89 console.error('queryBusinessAbilityInfo failed ' + message); 90} 91``` 92 93## businessAbilityRouter.queryBusinessAbilityInfo 94 95queryBusinessAbilityInfo(filter: BusinessAbilityFilter): Promise\<Array\<BusinessAbilityInfo\>\>; 96 97Obtains the business ability information based on the specified filter criteria. This API uses a promise to return the result. If the operation is successful, the business ability information is returned; otherwise, an error object is returned. 98 99**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 100 101**System capability**: SystemCapability.Ability.AbilityRuntime.Core 102 103**System API**: This is a system API. 104 105**Parameters** 106 107| Name | Type | Mandatory | Description | 108| ----------- | ------------------------------- | ---- | --------------------------------------- | 109| filter | [BusinessAbilityFilter](#businessabilityfilter) | Yes | Object used to filter the business abilities. | 110 111**Return value** 112 113| Type | Description | 114| ------------------------------------------------------------ | ------------------------------------------- | 115| Promise\<Array\<[BusinessAbilityInfo](js-apis-bundleManager-businessAbilityInfo.md#businessabilityinfo)\>\> | Promise used to return the business ability information that meets the filter criteria.| 116 117**Example** 118 119```ts 120import businessAbilityRouter from '@ohos.app.businessAbilityRouter'; 121import { BusinessError } from '@ohos.base'; 122 123let filter: businessAbilityRouter.BusinessAbilityFilter = {businessType: businessAbilityRouter.BusinessType.SHARE}; 124 125try { 126 businessAbilityRouter.queryBusinessAbilityInfo(filter) 127 .then(() => { 128 console.info('queryBusinessAbilityInfo success'); 129 }).catch((error: BusinessError) => { 130 console.error('queryBusinessAbilityInfo failed ' + error.message); 131 }); 132} catch (error) { 133 let message = (error as BusinessError).message; 134 console.error('queryBusinessAbilityInfo failed ' + message); 135} 136``` 137