1# @ohos.bundle.defaultAppManager (默认应用管理)(系统接口)
2
3本模块提供查询默认应用的能力,支持查询当前应用是否是默认应用。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 当前页面仅包含本模块的系统接口,其他公开接口参见[`@ohos.bundle.defaultAppManager`](js-apis-defaultAppManager.md)。
10
11## 导入模块
12
13```ts
14import { defaultAppManager } from '@kit.AbilityKit';
15```
16
17## 权限列表
18
19| 权限                                    | 权限等级    | 描述             |
20| --------------------------------------- | ----------- | ---------------- |
21| ohos.permission.GET_DEFAULT_APPLICATION | system_core | 默认应用相关权限。 |
22
23权限等级参考[权限APL等级说明](../../security/AccessToken/app-permission-mgmt-overview.md#权限机制中的基本概念)。
24
25## defaultAppManager.getDefaultApplication
26
27getDefaultApplication(type: string, userId?: number): Promise\<BundleInfo>
28
29以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型获取默认应用信息,使用Promise形式返回结果。
30
31**需要权限:** ohos.permission.GET_DEFAULT_APPLICATION
32
33**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
34
35**系统接口:**  此接口为系统接口。
36
37**参数:**
38
39| 参数名         | 类型     | 必填   | 说明                                      |
40| ----------- | ------ | ---- | --------------------------------------- |
41| type  | string | 是    | 要查询的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
42| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                        |
43
44**返回值:**
45
46| 类型                        | 说明                 |
47| ------------------------- | ------------------ |
48| Promise\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Promise形式返回默认应用包信息。 |
49
50**错误码:**
51
52以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
53
54| 错误码ID | 错误信息                                  |
55| -------- | ----------------------------------------- |
56| 201 | Permission denied. |
57| 202 | Permission denied, non-system app called system api. |
58| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
59| 801 | Capability not supported. |
60| 17700004 | The specified user ID is not found.       |
61| 17700023 | The specified default app does not exist. |
62| 17700025 | The specified type is invalid.            |
63
64**示例:**
65
66```ts
67import { defaultAppManager } from '@kit.AbilityKit';
68import { BusinessError } from '@kit.BasicServicesKit';
69import { uniformTypeDescriptor } from '@kit.ArkData';
70
71defaultAppManager.getDefaultApplication(defaultAppManager.ApplicationType.BROWSER)
72  .then((data) => {
73    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
74  })
75  .catch((error: BusinessError) => {
76    console.error('Operation failed. Cause: ' + JSON.stringify(error));
77  });
78
79defaultAppManager.getDefaultApplication("image/png")
80  .then((data) => {
81    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
82  })
83  .catch((error: BusinessError) => {
84    console.error('Operation failed. Cause: ' + JSON.stringify(error));
85  });
86
87defaultAppManager.getDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI)
88  .then((data) => {
89    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
90  })
91  .catch((error: BusinessError) => {
92    console.error('Operation failed. Cause: ' + JSON.stringify(error));
93  });
94```
95
96## defaultAppManager.getDefaultApplication
97
98getDefaultApplication(type: string, userId: number, callback: AsyncCallback\<BundleInfo>) : void
99
100以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型获取默认应用信息,使用callback形式返回结果。
101
102**需要权限:** ohos.permission.GET_DEFAULT_APPLICATION
103
104**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
105
106**系统接口:**  此接口为系统接口。
107
108**参数:**
109
110| 参数名         | 类型     | 必填   | 说明                                      |
111| ----------- | ------ | ---- | --------------------------------------- |
112| type  | string | 是    | 要查询的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
113| userId  | number | 是    | 用户ID。                           |
114| callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | 是    | 程序启动作为入参的回调函数,返回包信息。                    |
115
116**错误码:**
117
118以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
119
120| 错误码ID | 错误信息                                  |
121| -------- | ----------------------------------------- |
122| 201 | Permission denied. |
123| 202 | Permission denied, non-system app called system api. |
124| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
125| 801 | Capability not supported. |
126| 17700004 | The specified user ID is not found.       |
127| 17700023 | The specified default app does not exist. |
128| 17700025 | The specified type is invalid.            |
129
130**示例:**
131
132```ts
133import { defaultAppManager } from '@kit.AbilityKit';
134import { BusinessError } from '@kit.BasicServicesKit';
135import { uniformTypeDescriptor } from '@kit.ArkData';
136
137let userId = 100;
138defaultAppManager.getDefaultApplication(defaultAppManager.ApplicationType.BROWSER, userId, (err: BusinessError, data) => {
139  if (err) {
140    console.error('Operation failed. Cause: ' + JSON.stringify(err));
141    return;
142  }
143  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
144});
145
146defaultAppManager.getDefaultApplication("image/png", userId, (err: BusinessError, data) => {
147  if (err) {
148    console.error('Operation failed. Cause: ' + JSON.stringify(err));
149    return;
150  }
151  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
152});
153
154defaultAppManager.getDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, userId, (err: BusinessError, data) => {
155  if (err) {
156    console.error('Operation failed. Cause: ' + JSON.stringify(err));
157    return;
158  }
159  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
160});
161```
162
163## defaultAppManager.getDefaultApplication
164
165getDefaultApplication(type: string, callback: AsyncCallback\<BundleInfo>) : void
166
167以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型获取默认应用信息,使用callback形式返回结果。
168
169**需要权限:** ohos.permission.GET_DEFAULT_APPLICATION
170
171**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
172
173**系统接口:**  此接口为系统接口。
174
175**参数:**
176
177| 参数名         | 类型     | 必填   | 说明                                      |
178| ----------- | ------ | ---- | --------------------------------------- |
179| type  | string | 是    | 要查询的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
180| callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | 是    | 程序启动作为入参的回调函数,返回包信息。                    |
181
182**错误码:**
183
184以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
185
186| 错误码ID | 错误信息                                  |
187| -------- | ----------------------------------------- |
188| 201 | Permission denied. |
189| 202 | Permission denied, non-system app called system api. |
190| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
191| 801 | Capability not supported. |
192| 17700023 | The specified default app does not exist. |
193| 17700025 | The specified type is invalid.            |
194
195**示例:**
196
197```ts
198import { defaultAppManager } from '@kit.AbilityKit';
199import { BusinessError } from '@kit.BasicServicesKit';
200import { uniformTypeDescriptor } from '@kit.ArkData';
201
202defaultAppManager.getDefaultApplication(defaultAppManager.ApplicationType.BROWSER, (err: BusinessError, data) => {
203  if (err) {
204    console.error('Operation failed. Cause: ' + JSON.stringify(err));
205    return;
206  }
207  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
208});
209
210defaultAppManager.getDefaultApplication("image/png", (err: BusinessError, data) => {
211  if (err) {
212    console.error('Operation failed. Cause: ' + JSON.stringify(err));
213    return;
214  }
215  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
216});
217
218defaultAppManager.getDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, (err: BusinessError, data) => {
219  if (err) {
220    console.error('Operation failed. Cause: ' + JSON.stringify(err));
221    return;
222  }
223  console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
224});
225```
226
227## defaultAppManager.getDefaultApplicationSync<sup>10+</sup>
228
229getDefaultApplicationSync(type: string, userId?: number): BundleInfo
230
231以同步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型获取默认应用信息,使用BundleInfo返回结果。
232
233**需要权限:** ohos.permission.GET_DEFAULT_APPLICATION
234
235**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
236
237**系统接口:**  此接口为系统接口。
238
239**参数:**
240
241| 参数名 | 类型   | 必填 | 说明                                    |
242| -------| ------ | ---- | --------------------------------------- |
243| type   | string | 是   | 要查询的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。|
244| userId | number | 否   | 用户ID。默认值:调用方所在用户。         |
245
246**返回值:**
247
248| 类型                                       | 说明                 |
249| ------------------------------------------ | -------------------- |
250| [BundleInfo](js-apis-bundle-BundleInfo.md) | 返回的默认应用包信息。|
251
252**错误码:**
253
254以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
255
256| 错误码ID | 错误信息                                  |
257| -------- | ----------------------------------------- |
258| 201 | Permission denied. |
259| 202 | Permission denied, non-system app called system api. |
260| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
261| 801 | Capability not supported. |
262| 17700004 | The specified user ID is not found.       |
263| 17700023 | The specified default app does not exist. |
264| 17700025 | The specified type is invalid.            |
265
266**示例:**
267
268```ts
269import { defaultAppManager } from '@kit.AbilityKit';
270import { uniformTypeDescriptor } from '@kit.ArkData';
271
272try {
273  let data = defaultAppManager.getDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER)
274  console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
275} catch(error) {
276  console.error('Operation failed. Cause: ' + JSON.stringify(error));
277};
278
279try {
280  let data = defaultAppManager.getDefaultApplicationSync("image/png")
281  console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
282} catch(error) {
283  console.error('Operation failed. Cause: ' + JSON.stringify(error));
284};
285
286try {
287  let data = defaultAppManager.getDefaultApplicationSync(uniformTypeDescriptor.UniformDataType.AVI)
288  console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
289} catch(error) {
290  console.error('Operation failed. Cause: ' + JSON.stringify(error));
291};
292```
293
294## defaultAppManager.setDefaultApplication
295
296setDefaultApplication(type: string, elementName: ElementName, userId?: number): Promise\<void>
297
298以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型设置默认应用,使用Promise形式返回结果。
299
300**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
301
302**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
303
304**系统接口:**  此接口为系统接口。
305
306**参数:**
307
308| 参数名         | 类型     | 必填   | 说明                                      |
309| ----------- | ------ | ---- | --------------------------------------- |
310| type  | string | 是    | 要设置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
311| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
312| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                           |
313
314**返回值:**
315
316| 类型           | 说明                               |
317| -------------- | ---------------------------------- |
318| Promise\<void> | Promise对象,无返回结果的Promise对象。 |
319
320**错误码:**
321
322以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
323
324| 错误码ID | 错误信息                                       |
325| -------- | ---------------------------------------------- |
326| 201 | Permission denied. |
327| 202 | Permission denied, non-system app called system api. |
328| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
329| 801 | Capability not supported. |
330| 17700004 | The specified user ID is not found.            |
331| 17700025 | The specified type is invalid.                 |
332| 17700028 | The specified ability does not match the type. |
333
334**示例:**
335
336```ts
337import { defaultAppManager } from '@kit.AbilityKit';
338import { BusinessError } from '@kit.BasicServicesKit';
339import { uniformTypeDescriptor } from '@kit.ArkData';
340
341defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
342  bundleName: "com.example.myapplication",
343  moduleName: "module01",
344  abilityName: "EntryAbility"
345}).then((data) => {
346  console.info('Operation successful.');
347}).catch((error: BusinessError) => {
348  console.error('Operation failed. Cause: ' + JSON.stringify(error));
349});
350
351let userId = 100;
352defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
353  bundleName: "com.example.myapplication",
354  moduleName: "module01",
355  abilityName: "EntryAbility"
356}, userId).then((data) => {
357  console.info('Operation successful.');
358}).catch((error: BusinessError) => {
359  console.error('Operation failed. Cause: ' + JSON.stringify(error));
360});
361
362defaultAppManager.setDefaultApplication("image/png", {
363  bundleName: "com.example.myapplication",
364  moduleName: "module01",
365  abilityName: "EntryAbility"
366}, userId).then((data) => {
367  console.info('Operation successful.');
368}).catch((error: BusinessError) => {
369  console.error('Operation failed. Cause: ' + JSON.stringify(error));
370});
371
372defaultAppManager.setDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, {
373  bundleName: "com.example.myapplication",
374  moduleName: "module01",
375  abilityName: "EntryAbility"
376}, userId).then((data) => {
377  console.info('Operation successful.');
378}).catch((error: BusinessError) => {
379  console.error('Operation failed. Cause: ' + JSON.stringify(error));
380});
381```
382
383## defaultAppManager.setDefaultApplication
384
385setDefaultApplication(type: string, elementName: ElementName, userId: number, callback: AsyncCallback\<void>) : void
386
387以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型设置默认应用,使用callback形式返回结果。
388
389**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
390
391**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
392
393**系统接口:**  此接口为系统接口。
394
395**参数:**
396
397| 参数名         | 类型     | 必填   | 说明                                      |
398| ----------- | ------ | ---- | --------------------------------------- |
399| type  | string | 是    | 要设置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
400| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
401| userId  | number | 是    | 用户ID。                           |
402| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
403
404**错误码:**
405
406以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
407
408| 错误码ID | 错误信息                                       |
409| -------- | ---------------------------------------------- |
410| 201 | Permission denied. |
411| 202 | Permission denied, non-system app called system api. |
412| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
413| 801 | Capability not supported. |
414| 17700004 | The specified user ID is not found.            |
415| 17700025 | The specified type is invalid.                 |
416| 17700028 | The specified ability does not match the type. |
417
418**示例:**
419
420```ts
421import { defaultAppManager } from '@kit.AbilityKit';
422import { BusinessError } from '@kit.BasicServicesKit';
423import { uniformTypeDescriptor } from '@kit.ArkData';
424
425let userId = 100;
426defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
427  bundleName: "com.example.myapplication",
428  moduleName: "module01",
429  abilityName: "EntryAbility"
430}, userId, (err: BusinessError, data) => {
431  if (err) {
432    console.error('Operation failed. Cause: ' + JSON.stringify(err));
433    return;
434  }
435  console.info('Operation successful.');
436});
437
438defaultAppManager.setDefaultApplication("image/png", {
439  bundleName: "com.example.myapplication",
440  moduleName: "module01",
441  abilityName: "EntryAbility"
442}, userId, (err: BusinessError, data) => {
443  if (err) {
444    console.error('Operation failed. Cause: ' + JSON.stringify(err));
445    return;
446  }
447  console.info('Operation successful.');
448});
449
450defaultAppManager.setDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, {
451  bundleName: "com.example.myapplication",
452  moduleName: "module01",
453  abilityName: "EntryAbility"
454}, userId, (err: BusinessError, data) => {
455  if (err) {
456    console.error('Operation failed. Cause: ' + JSON.stringify(err));
457    return;
458  }
459  console.info('Operation successful.');
460});
461```
462
463## defaultAppManager.setDefaultApplication
464
465setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCallback\<void>) : void
466
467以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型设置默认应用,使用callback形式返回结果。
468
469**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
470
471**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
472
473**系统接口:**  此接口为系统接口。
474
475**参数:**
476
477| 参数名         | 类型     | 必填   | 说明                                      |
478| ----------- | ------ | ---- | --------------------------------------- |
479| type  | string | 是    | 要设置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
480| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
481| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
482
483**错误码:**
484
485以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
486
487| 错误码ID | 错误信息                                       |
488| -------- | ---------------------------------------------- |
489| 201 | Permission denied. |
490| 202 | Permission denied, non-system app called system api. |
491| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
492| 801 | Capability not supported. |
493| 17700025 | The specified type is invalid.                 |
494| 17700028 | The specified ability does not match the type. |
495
496**示例:**
497
498```ts
499import { defaultAppManager } from '@kit.AbilityKit';
500import { BusinessError } from '@kit.BasicServicesKit';
501import { uniformTypeDescriptor } from '@kit.ArkData';
502
503defaultAppManager.setDefaultApplication(defaultAppManager.ApplicationType.BROWSER, {
504  bundleName: "com.example.myapplication",
505  moduleName: "module01",
506  abilityName: "EntryAbility"
507}, (err: BusinessError, data) => {
508  if (err) {
509    console.error('Operation failed. Cause: ' + JSON.stringify(err));
510    return;
511  }
512  console.info('Operation successful.');
513});
514
515defaultAppManager.setDefaultApplication("image/png", {
516  bundleName: "com.example.myapplication",
517  moduleName: "module01",
518  abilityName: "EntryAbility"
519}, (err: BusinessError, data) => {
520  if (err) {
521    console.error('Operation failed. Cause: ' + JSON.stringify(err));
522    return;
523  }
524  console.info('Operation successful.');
525});
526
527defaultAppManager.setDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, {
528  bundleName: "com.example.myapplication",
529  moduleName: "module01",
530  abilityName: "EntryAbility"
531}, (err: BusinessError, data) => {
532  if (err) {
533    console.error('Operation failed. Cause: ' + JSON.stringify(err));
534    return;
535  }
536  console.info('Operation successful.');
537});
538```
539
540## defaultAppManager.setDefaultApplicationSync<sup>10+</sup>
541
542setDefaultApplicationSync(type: string, elementName: ElementName, userId?: number): void
543
544以同步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型设置默认应用。
545
546**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
547
548**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
549
550**系统接口:**  此接口为系统接口。
551
552**参数:**
553
554| 参数名      | 类型   | 必填 | 说明                                      |
555| ----------- | ------ | ---- | --------------------------------------- |
556| type        | string | 是   | 要设置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。|
557| elementName | [ElementName](js-apis-bundle-ElementName.md) | 是 | 要设置为默认应用的组件信息。                           |
558| userId      | number | 否   | 用户ID。默认值:调用方所在用户。                           |
559
560**错误码:**
561
562以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
563
564| 错误码ID | 错误信息                                       |
565| -------- | ---------------------------------------------- |
566| 201 | Permission denied. |
567| 202 | Permission denied, non-system app called system api. |
568| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
569| 801 | Capability not supported. |
570| 17700004 | The specified user ID is not found.            |
571| 17700025 | The specified type is invalid.                 |
572| 17700028 | The specified ability does not match the type. |
573
574**示例:**
575
576```ts
577import { defaultAppManager } from '@kit.AbilityKit';
578import { uniformTypeDescriptor } from '@kit.ArkData';
579
580try {
581  defaultAppManager.setDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER, {
582  bundleName: "com.example.myapplication",
583  moduleName: "module01",
584  abilityName: "EntryAbility"
585});
586  console.info('Operation successful.');
587} catch(error) {
588  console.error('Operation failed. Cause: ' + JSON.stringify(error));
589};
590
591let userId = 100;
592try {
593  defaultAppManager.setDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER, {
594  bundleName: "com.example.myapplication",
595  moduleName: "module01",
596  abilityName: "EntryAbility"
597}, userId);
598  console.info('Operation successful.');
599} catch(error) {
600  console.error('Operation failed. Cause: ' + JSON.stringify(error));
601};
602
603try {
604  defaultAppManager.setDefaultApplicationSync("image/png", {
605  bundleName: "com.example.myapplication",
606  moduleName: "module01",
607  abilityName: "EntryAbility"
608}, userId);
609  console.info('Operation successful.');
610} catch(error) {
611  console.error('Operation failed. Cause: ' + JSON.stringify(error));
612};
613
614try {
615  defaultAppManager.setDefaultApplicationSync(uniformTypeDescriptor.UniformDataType.AVI, {
616  bundleName: "com.example.myapplication",
617  moduleName: "module01",
618  abilityName: "EntryAbility"
619}, userId);
620  console.info('Operation successful.');
621} catch(error) {
622  console.error('Operation failed. Cause: ' + JSON.stringify(error));
623};
624```
625
626## defaultAppManager.resetDefaultApplication
627
628resetDefaultApplication(type: string, userId?: number): Promise\<void>
629
630以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型重置默认应用,使用Promise形式返回结果。
631
632**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
633
634**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
635
636**系统接口:**  此接口为系统接口。
637
638**参数:**
639
640| 参数名         | 类型     | 必填   | 说明                                      |
641| ----------- | ------ | ---- | --------------------------------------- |
642| type  | string | 是    | 要重置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
643| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                           |
644
645**错误码:**
646
647以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
648
649| 错误码ID | 错误信息                            |
650| -------- | ----------------------------------- |
651| 201 | Permission denied. |
652| 202 | Permission denied, non-system app called system api. |
653| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
654| 801 | Capability not supported. |
655| 17700004 | The specified user ID is not found. |
656| 17700025 | The specified type is invalid.      |
657
658**示例:**
659
660```ts
661import { defaultAppManager } from '@kit.AbilityKit';
662import { BusinessError } from '@kit.BasicServicesKit';
663import { uniformTypeDescriptor } from '@kit.ArkData';
664
665let userId = 100;
666defaultAppManager.resetDefaultApplication(defaultAppManager.ApplicationType.BROWSER, userId)
667  .then((data) => {
668    console.info('Operation successful.');
669  })
670  .catch((error: BusinessError) => {
671    console.error('Operation failed. Cause: ' + JSON.stringify(error));
672  });
673
674defaultAppManager.resetDefaultApplication("image/png", userId)
675  .then((data) => {
676    console.info('Operation successful.');
677  })
678  .catch((error: BusinessError) => {
679    console.error('Operation failed. Cause: ' + JSON.stringify(error));
680  });
681
682defaultAppManager.resetDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, userId)
683  .then((data) => {
684    console.info('Operation successful.');
685  })
686  .catch((error: BusinessError) => {
687    console.error('Operation failed. Cause: ' + JSON.stringify(error));
688  });
689```
690
691## defaultAppManager.resetDefaultApplication
692
693resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\<void>) : void
694
695以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型重置默认应用,使用callback形式返回结果。
696
697**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
698
699**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
700
701**系统接口:**  此接口为系统接口。
702
703**参数:**
704
705| 参数名         | 类型     | 必填   | 说明                                      |
706| ----------- | ------ | ---- | --------------------------------------- |
707| type  | string | 是    | 要重置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
708| userId  | number | 是    | 用户ID。                          |
709| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
710
711**错误码:**
712
713以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
714
715| 错误码ID | 错误信息                            |
716| -------- | ----------------------------------- |
717| 201 | Permission denied. |
718| 202 | Permission denied, non-system app called system api. |
719| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
720| 801 | Capability not supported. |
721| 17700004 | The specified user ID is not found. |
722| 17700025 | The specified type is invalid.      |
723
724**示例:**
725
726```ts
727import { defaultAppManager } from '@kit.AbilityKit';
728import { BusinessError } from '@kit.BasicServicesKit';
729import { uniformTypeDescriptor } from '@kit.ArkData';
730
731let userId = 100;
732defaultAppManager.resetDefaultApplication(defaultAppManager.ApplicationType.BROWSER, userId, (err: BusinessError, data) => {
733  if (err) {
734    console.error('Operation failed. Cause: ' + JSON.stringify(err));
735    return;
736  }
737  console.info('Operation successful.');
738});
739
740defaultAppManager.resetDefaultApplication("image/png", userId, (err: BusinessError, data) => {
741  if (err) {
742    console.error('Operation failed. Cause: ' + JSON.stringify(err));
743    return;
744  }
745  console.info('Operation successful.');
746});
747
748defaultAppManager.resetDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, userId, (err: BusinessError, data) => {
749  if (err) {
750    console.error('Operation failed. Cause: ' + JSON.stringify(err));
751    return;
752  }
753  console.info('Operation successful.');
754});
755```
756
757## defaultAppManager.resetDefaultApplication
758
759resetDefaultApplication(type: string, callback: AsyncCallback\<void>) : void
760
761以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型重置默认应用,使用callback形式返回结果。
762
763**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
764
765**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
766
767**系统接口:**  此接口为系统接口。
768
769**参数:**
770
771| 参数名         | 类型     | 必填   | 说明                                      |
772| ----------- | ------ | ---- | --------------------------------------- |
773| type  | string | 是    | 要重置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。       |
774| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
775
776**错误码:**
777
778以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
779
780| 错误码ID | 错误信息                            |
781| -------- | ----------------------------------- |
782| 201 | Permission denied. |
783| 202 | Permission denied, non-system app called system api. |
784| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
785| 801 | Capability not supported. |
786| 17700025 | The specified type is invalid.      |
787
788**示例:**
789
790```ts
791import { defaultAppManager } from '@kit.AbilityKit';
792import { BusinessError } from '@kit.BasicServicesKit';
793import { uniformTypeDescriptor } from '@kit.ArkData';
794
795defaultAppManager.resetDefaultApplication(defaultAppManager.ApplicationType.BROWSER, (err: BusinessError, data) => {
796  if (err) {
797    console.error('Operation failed. Cause: ' + JSON.stringify(err));
798    return;
799  }
800  console.info('Operation successful.');
801});
802
803defaultAppManager.resetDefaultApplication("image/png", (err: BusinessError, data) => {
804  if (err) {
805    console.error('Operation failed. Cause: ' + JSON.stringify(err));
806    return;
807  }
808  console.info('Operation successful.');
809});
810
811defaultAppManager.resetDefaultApplication(uniformTypeDescriptor.UniformDataType.AVI, (err: BusinessError, data) => {
812  if (err) {
813    console.error('Operation failed. Cause: ' + JSON.stringify(err));
814    return;
815  }
816  console.info('Operation successful.');
817});
818```
819
820## defaultAppManager.resetDefaultApplicationSync<sup>10+</sup>
821
822resetDefaultApplicationSync(type: string, userId?: number): void
823
824以同步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型重置默认应用。
825
826**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
827
828**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
829
830**系统接口:**  此接口为系统接口。
831
832**参数:**
833
834| 参数名 | 类型   | 必填 | 说明                                    |
835| ------ | ------ | ---- | --------------------------------------- |
836| type   | string | 是   | 要重置的应用类型,取[ApplicationType](js-apis-defaultAppManager.md#defaultappmanagerapplicationtype)中的值,或者符合媒体类型格式的文件类型,或者[UniformDataType](../apis-arkdata/js-apis-data-uniformTypeDescriptor.md)类型。|
837| userId | number | 否   | 用户ID。默认值:调用方所在用户。                           |
838
839**错误码:**
840
841以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
842
843| 错误码ID | 错误信息                            |
844| -------- | ----------------------------------- |
845| 201 | Permission denied. |
846| 202 | Permission denied, non-system app called system api. |
847| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
848| 801 | Capability not supported. |
849| 17700004 | The specified user ID is not found. |
850| 17700025 | The specified type is invalid.      |
851
852**示例:**
853
854```ts
855import { defaultAppManager } from '@kit.AbilityKit';
856import { uniformTypeDescriptor } from '@kit.ArkData';
857
858let userId = 100;
859try {
860  defaultAppManager.resetDefaultApplicationSync(defaultAppManager.ApplicationType.BROWSER, userId);
861  console.info('Operation successful.');
862} catch(error) {
863  console.error('Operation failed. Cause: ' + JSON.stringify(error));
864};
865
866try {
867  defaultAppManager.resetDefaultApplicationSync("image/png", userId);
868  console.info('Operation successful.');
869} catch(error) {
870  console.error('Operation failed. Cause: ' + JSON.stringify(error));
871};
872
873try {
874  defaultAppManager.resetDefaultApplicationSync(uniformTypeDescriptor.UniformDataType.AVI, userId);
875  console.info('Operation successful.');
876} catch(error) {
877  console.error('Operation failed. Cause: ' + JSON.stringify(error));
878};
879```