1# @ohos.bundle.defaultAppManager (默认应用管理)
2
3本模块提供查询默认应用的能力,支持查询当前应用是否是默认应用。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { defaultAppManager } from '@kit.AbilityKit';
13```
14
15## defaultAppManager.ApplicationType
16
17默认应用的应用类型。
18
19**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
20
21| 名称   | 值 | 说明                                   |
22| -------- | -------------------------------------- | -------------------------------------- |
23| BROWSER  | 'Web Browser' | 默认浏览器。                            |
24| IMAGE    | 'Image Gallery' | 默认图片查看器。                         |
25| AUDIO    | 'Audio Player' | 默认音频播放器。                         |
26| VIDEO    | 'Video Player' | 默认视频播放器。                         |
27| PDF      | 'PDF Viewer' | 默认PDF文档查看器。                      |
28| WORD     | 'Word Viewer' | 默认WORD文档查看器。                     |
29| EXCEL    | 'Excel Viewer' | 默认EXCEL文档查看器。                    |
30| PPT      | 'PPT Viewer' | 默认PPT文档查看器。                      |
31| EMAIL<sup>12+</sup>    | 'Email' | 默认邮件。                      |
32
33## defaultAppManager.isDefaultApplication
34
35isDefaultApplication(type: string): Promise\<boolean>
36
37以异步方法根据系统已定义的应用类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型判断当前应用是否是该类型的默认应用,使用Promise形式返回结果。
38
39**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
40
41**参数:**
42
43| 参数名         | 类型     | 必填   | 说明                                      |
44| ----------- | ------ | ---- | --------------------------------------- |
45| type  | string | 是    | 要查询的应用类型,取[ApplicationType](#defaultappmanagerapplicationtype)或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型中的值。                           |
46
47**返回值:**
48
49| 类型                        | 说明                 |
50| ------------------------- | ------------------ |
51| Promise\<boolean> | Promise形式返回当前应用是否是默认应用,true表示是默认应用,false表示不是默认应用。 |
52
53**错误码:**
54
55以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
56
57| 错误码ID | 错误信息                                                    |
58| -------- | ---------------------------------------------------------- |
59| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
60| 801 | Capability not supported. |
61
62**示例:**
63
64```ts
65import { defaultAppManager } from '@kit.AbilityKit';
66import { BusinessError } from '@kit.BasicServicesKit';
67
68defaultAppManager.isDefaultApplication(defaultAppManager.ApplicationType.BROWSER)
69  .then((data) => {
70    console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
71  }).catch((error: BusinessError) => {
72    console.error('Operation failed. Cause: ' + JSON.stringify(error));
73  });
74```
75
76## defaultAppManager.isDefaultApplication
77
78isDefaultApplication(type: string, callback: AsyncCallback\<boolean>): void
79
80以异步方法根据系统已定义的应用类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型判断当前应用是否是该类型的默认应用,使用callback形式返回结果。
81
82**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
83
84**参数:**
85
86| 参数名         | 类型                              | 必填   | 说明                                      |
87| ----------- | ------------------------------- | ---- | --------------------------------------- |
88| type  | string                          | 是    | 要查询的应用类型,取[ApplicationType](#defaultappmanagerapplicationtype)或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型中的值。                            |
89| callback    | AsyncCallback\<boolean> | 是    | 程序启动作为入参的回调函数,返回当前应用是否是默认应用,true表示是默认应用,false表示不是默认应用。 |
90
91**错误码:**
92
93以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
94
95| 错误码ID | 错误信息                                                    |
96| -------- | ---------------------------------------------------------- |
97| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
98| 801 | Capability not supported. |
99
100**示例:**
101
102```ts
103import { defaultAppManager } from '@kit.AbilityKit';
104import { BusinessError } from '@kit.BasicServicesKit';
105
106defaultAppManager.isDefaultApplication(defaultAppManager.ApplicationType.BROWSER, (err: BusinessError, data) => {
107  if (err) {
108    console.error('Operation failed. Cause: ' + JSON.stringify(err));
109    return;
110  }
111  console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
112});
113```
114
115## defaultAppManager.isDefaultApplicationSync<sup>10+</sup>
116
117isDefaultApplicationSync(type: string): boolean
118
119以同步方法根据系统已定义的应用类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型判断当前应用是否是该类型的默认应用,使用boolean形式返回结果。
120
121**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
122
123**参数:**
124
125| 参数名 | 类型   | 必填 | 说明                                     |
126| -------| ------ | ---- | --------------------------------------- |
127|  type  | string | 是   | 要查询的应用类型,取[ApplicationType](#defaultappmanagerapplicationtype)或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型中的值。   |
128
129**返回值:**
130
131| 类型    | 说明                 |
132| ------- | -------------------- |
133| boolean | 返回当前应用是否是默认应用,true表示是默认应用,false表示不是默认应用。 |
134
135**错误码:**
136
137以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
138
139| 错误码ID | 错误信息                                                    |
140| -------- | ---------------------------------------------------------- |
141| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
142| 801 | Capability not supported. |
143
144**示例:**
145
146```ts
147import { defaultAppManager } from '@kit.AbilityKit';
148
149try {
150  let data = defaultAppManager.isDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER)
151  console.info('Operation successful. IsDefaultApplicationSync ? ' + JSON.stringify(data));
152} catch(error) {
153  console.error('Operation failed. Cause: ' + JSON.stringify(error));
154};
155```