• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bundle.defaultAppManager (默认应用管理)
2
3本模块提供查询默认应用的能力,支持查询当前应用是否是默认应用。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```
12import defaultAppMgr from '@ohos.bundle.defaultAppManager';
13```
14
15## 权限列表
16
17| 权限                                    | 权限等级    | 描述             |
18| --------------------------------------- | ----------- | ---------------- |
19| ohos.permission.GET_DEFAULT_APPLICATION | system_core | 默认应用相关权限。 |
20
21权限等级参考[权限等级说明](../../security/accesstoken-overview.md#权限等级说明)
22
23
24## defaultAppMgr.ApplicationType
25
26默认应用的应用类型。
27
28**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
29
30| 名称   | 值 | 说明                                   |
31| -------- | -------------------------------------- | -------------------------------------- |
32| BROWSER  | "Web Browser" | 默认浏览器。                            |
33| IMAGE    | "Image Gallery" | 默认图片查看器。                         |
34| AUDIO    | "Audio Player" | 默认音频播放器。                         |
35| VIDEO    | "Video Player" | 默认视频播放器。                         |
36| PDF      | "PDF Viewer" | 默认PDF文档查看器。                      |
37| WORD     | "Word Viewer" | 默认WORD文档查看器。                     |
38| EXCEL    | "Excel Viewer" | 默认EXCEL文档查看器。                    |
39| PPT      | "PPT Viewer" | 默认PPT文档查看器。                      |
40
41## defaultAppMgr.isDefaultApplication
42
43isDefaultApplication(type: string): Promise\<boolean>
44
45以异步方法根据系统已定义的应用类型判断当前应用是否是该应用类型的默认应用,使用Promise形式返回结果。
46
47**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
48
49**参数:**
50
51| 参数名         | 类型     | 必填   | 说明                                      |
52| ----------- | ------ | ---- | --------------------------------------- |
53| type  | string | 是    | 要查询的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值。                           |
54
55**返回值:**
56
57| 类型                        | 说明                 |
58| ------------------------- | ------------------ |
59| Promise\<boolean> | Promise形式返回当前应用是否是默认应用,true表示是默认应用,false表示不是默认应用。 |
60
61
62**示例:**
63
64```ts
65import defaultAppMgr from '@ohos.bundle.defaultAppManager';
66defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER)
67.then((data) => {
68    console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
69}).catch((error) => {
70    console.error('Operation failed. Cause: ' + JSON.stringify(error));
71});
72```
73
74## defaultAppMgr.isDefaultApplication
75
76isDefaultApplication(type: string, callback: AsyncCallback\<boolean>): void
77
78以异步方法根据系统已定义的应用类型判断当前应用是否是该应用类型的默认应用,使用callback形式返回结果。
79
80**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
81
82**参数:**
83
84| 参数名         | 类型                              | 必填   | 说明                                      |
85| ----------- | ------------------------------- | ---- | --------------------------------------- |
86| type  | string                          | 是    | 要查询的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值。                            |
87| callback    | AsyncCallback\<boolean> | 是    | 程序启动作为入参的回调函数,返回当前应用是否是默认应用,true表示是默认应用,false表示不是默认应用。 |
88
89**示例:**
90
91```ts
92import defaultAppMgr from '@ohos.bundle.defaultAppManager';
93defaultAppMgr.isDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
94    if (err) {
95        console.error('Operation failed. Cause: ' + JSON.stringify(err));
96        return;
97    }
98    console.info('Operation successful. IsDefaultApplication ? ' + JSON.stringify(data));
99 });
100```
101
102## defaultAppMgr.getDefaultApplication
103
104getDefaultApplication(type: string, userId?: number): Promise\<BundleInfo>
105
106以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型获取默认应用信息,使用Promise形式返回结果。
107
108**需要权限:** ohos.permission.GET_DEFAULT_APPLICATION
109
110**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
111
112**系统API:**  此接口为系统接口,三方应用不支持调用
113
114**参数:**
115
116| 参数名         | 类型     | 必填   | 说明                                      |
117| ----------- | ------ | ---- | --------------------------------------- |
118| type  | string | 是    | 要查询的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
119| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                        |
120
121**返回值:**
122
123| 类型                        | 说明                 |
124| ------------------------- | ------------------ |
125| Promise\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | Promise形式返回默认应用包信息。 |
126
127**错误码:**
128
129以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
130
131| 错误码ID | 错误信息                                  |
132| -------- | ----------------------------------------- |
133| 17700004 | The specified user ID is not found.       |
134| 17700023 | The specified default app does not exist. |
135| 17700025 | The specified type is invalid.            |
136
137**示例:**
138
139```ts
140import defaultAppMgr from '@ohos.bundle.defaultAppManager';
141defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER)
142.then((data) => {
143    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
144})
145.catch((error) => {
146    console.error('Operation failed. Cause: ' + JSON.stringify(error));
147});
148
149defaultAppMgr.getDefaultApplication("image/png")
150.then((data) => {
151    console.info('Operation successful. bundleInfo: ' + JSON.stringify(data));
152})
153.catch((error) => {
154    console.error('Operation failed. Cause: ' + JSON.stringify(error));
155});
156```
157
158## defaultAppMgr.getDefaultApplication
159
160getDefaultApplication(type: string, userId: number, callback: AsyncCallback\<BundleInfo>) : void
161
162以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型获取默认应用信息,使用callback形式返回结果。
163
164**需要权限:** ohos.permission.GET_DEFAULT_APPLICATION
165
166**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
167
168**系统API:**  此接口为系统接口,三方应用不支持调用
169
170**参数:**
171
172| 参数名         | 类型     | 必填   | 说明                                      |
173| ----------- | ------ | ---- | --------------------------------------- |
174| type  | string | 是    | 要查询的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
175| userId  | number | 是    | 用户ID。                           |
176| callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | 是    | 程序启动作为入参的回调函数,返回包信息。                    |
177
178**错误码:**
179
180以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
181
182| 错误码ID | 错误信息                                  |
183| -------- | ----------------------------------------- |
184| 17700004 | The specified user ID is not found.       |
185| 17700023 | The specified default app does not exist. |
186| 17700025 | The specified type is invalid.            |
187
188**示例:**
189
190```ts
191import defaultAppMgr from '@ohos.bundle.defaultAppManager';
192let userId = 100;
193defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, userId, (err, data) => {
194    if (err) {
195        console.error('Operation failed. Cause: ' + JSON.stringify(err));
196        return;
197    }
198    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
199});
200
201defaultAppMgr.getDefaultApplication("image/png", userId, (err, data) => {
202    if (err) {
203        console.error('Operation failed. Cause: ' + JSON.stringify(err));
204        return;
205    }
206    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
207});
208```
209
210## defaultAppMgr.getDefaultApplication
211
212getDefaultApplication(type: string, callback: AsyncCallback\<BundleInfo>) : void
213
214以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型获取默认应用信息,使用callback形式返回结果。
215
216**需要权限:** ohos.permission.GET_DEFAULT_APPLICATION
217
218**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
219
220**系统API:**  此接口为系统接口,三方应用不支持调用
221
222**参数:**
223
224| 参数名         | 类型     | 必填   | 说明                                      |
225| ----------- | ------ | ---- | --------------------------------------- |
226| type  | string | 是    | 要查询的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
227| callback    | AsyncCallback\<[BundleInfo](js-apis-bundle-BundleInfo.md)> | 是    | 程序启动作为入参的回调函数,返回包信息。                    |
228
229**错误码:**
230
231以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
232
233| 错误码ID | 错误信息                                  |
234| -------- | ----------------------------------------- |
235| 17700004 | The specified user ID is not found.       |
236| 17700023 | The specified default app does not exist. |
237| 17700025 | The specified type is invalid.            |
238
239**示例:**
240
241```ts
242import defaultAppMgr from '@ohos.bundle.defaultAppManager';
243defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
244    if (err) {
245        console.error('Operation failed. Cause: ' + JSON.stringify(err));
246        return;
247    }
248    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
249});
250defaultAppMgr.getDefaultApplication("image/png", (err, data) => {
251    if (err) {
252        console.error('Operation failed. Cause: ' + JSON.stringify(err));
253        return;
254    }
255    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
256});
257```
258
259## defaultAppMgr.setDefaultApplication
260
261setDefaultApplication(type: string, elementName: ElementName, userId?: number): Promise\<void>
262
263以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型设置默认应用,使用Promise形式返回结果。
264
265**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
266
267**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
268
269**系统API:**  此接口为系统接口,三方应用不支持调用
270
271**参数:**
272
273| 参数名         | 类型     | 必填   | 说明                                      |
274| ----------- | ------ | ---- | --------------------------------------- |
275| type  | string | 是    | 要设置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
276| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
277| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                           |
278
279**返回值:**
280
281| 类型           | 说明                               |
282| -------------- | ---------------------------------- |
283| Promise\<void> | Promise对象,无返回结果的Promise对象。 |
284
285**错误码:**
286
287以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
288
289| 错误码ID | 错误信息                                       |
290| -------- | ---------------------------------------------- |
291| 17700004 | The specified user ID is not found.            |
292| 17700025 | The specified type is invalid.                 |
293| 17700028 | The specified ability does not match the type. |
294
295**示例:**
296
297```ts
298import defaultAppMgr from '@ohos.bundle.defaultAppManager';
299defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
300    bundleName: "com.test.app",
301    moduleName: "module01",
302    abilityName: "MainAbility"
303}).then((data) => {
304    console.info('Operation successful.');
305}).catch((error) => {
306    console.error('Operation failed. Cause: ' + JSON.stringify(error));
307});
308
309let userId = 100;
310defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
311    bundleName: "com.test.app",
312    moduleName: "module01",
313    abilityName: "MainAbility"
314}, userId).then((data) => {
315    console.info('Operation successful.');
316}).catch((error) => {
317    console.error('Operation failed. Cause: ' + JSON.stringify(error));
318});
319
320defaultAppMgr.setDefaultApplication("image/png", {
321    bundleName: "com.test.app",
322    moduleName: "module01",
323    abilityName: "MainAbility"
324}, userId).then((data) => {
325    console.info('Operation successful.');
326}).catch((error) => {
327    console.error('Operation failed. Cause: ' + JSON.stringify(error));
328});
329```
330
331## defaultAppMgr.setDefaultApplication
332
333setDefaultApplication(type: string, elementName: ElementName, userId: number, callback: AsyncCallback\<void>) : void;
334
335以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型设置默认应用,使用callback形式返回结果。
336
337**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
338
339**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
340
341**系统API:**  此接口为系统接口,三方应用不支持调用
342
343**参数:**
344
345| 参数名         | 类型     | 必填   | 说明                                      |
346| ----------- | ------ | ---- | --------------------------------------- |
347| type  | string | 是    | 要设置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
348| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
349| userId  | number | 是    | 用户ID。                           |
350| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
351
352**错误码:**
353
354以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
355
356| 错误码ID | 错误信息                                       |
357| -------- | ---------------------------------------------- |
358| 17700004 | The specified user ID is not found.            |
359| 17700025 | The specified type is invalid.                 |
360| 17700028 | The specified ability does not match the type. |
361
362**示例:**
363
364```ts
365import defaultAppMgr from '@ohos.bundle.defaultAppManager';
366let userId = 100;
367defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
368    bundleName: "com.test.app",
369    moduleName: "module01",
370    abilityName: "MainAbility"
371}, userId, (err, data) => {
372    if (err) {
373        console.error('Operation failed. Cause: ' + JSON.stringify(err));
374        return;
375    }
376    console.info('Operation successful.');
377 });
378
379defaultAppMgr.setDefaultApplication("image/png", {
380    bundleName: "com.test.app",
381    moduleName: "module01",
382    abilityName: "MainAbility"
383}, userId, (err, data) => {
384    if (err) {
385        console.error('Operation failed. Cause: ' + JSON.stringify(err));
386        return;
387    }
388    console.info('Operation successful.');
389 });
390```
391
392## defaultAppMgr.setDefaultApplication
393
394setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCallback\<void>) : void;
395
396以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型设置默认应用,使用callback形式返回结果。
397
398**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
399
400**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
401
402**系统API:**  此接口为系统接口,三方应用不支持调用
403
404**参数:**
405
406| 参数名         | 类型     | 必填   | 说明                                      |
407| ----------- | ------ | ---- | --------------------------------------- |
408| type  | string | 是    | 要设置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
409| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
410| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
411
412**错误码:**
413
414以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
415
416| 错误码ID | 错误信息                                       |
417| -------- | ---------------------------------------------- |
418| 17700004 | The specified user ID is not found.            |
419| 17700025 | The specified type is invalid.                 |
420| 17700028 | The specified ability does not match the type. |
421
422**示例:**
423
424```ts
425import defaultAppMgr from '@ohos.bundle.defaultAppManager';
426defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
427    bundleName: "com.test.app",
428    moduleName: "module01",
429    abilityName: "MainAbility"
430}, (err, data) => {
431    if (err) {
432        console.error('Operation failed. Cause: ' + JSON.stringify(err));
433        return;
434    }
435    console.info('Operation successful.');
436 });
437
438defaultAppMgr.setDefaultApplication("image/png", {
439    bundleName: "com.test.app",
440    moduleName: "module01",
441    abilityName: "MainAbility"
442}, (err, data) => {
443    if (err) {
444        console.error('Operation failed. Cause: ' + JSON.stringify(err));
445        return;
446    }
447    console.info('Operation successful.');
448 });
449```
450
451## defaultAppMgr.resetDefaultApplication
452
453resetDefaultApplication(type: string, userId?: number): Promise\<void>
454
455以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型重置默认应用,使用Promise形式返回结果。
456
457**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
458
459**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
460
461**系统API:**  此接口为系统接口,三方应用不支持调用
462
463**参数:**
464
465| 参数名         | 类型     | 必填   | 说明                                      |
466| ----------- | ------ | ---- | --------------------------------------- |
467| type  | string | 是    | 要重置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
468| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                           |
469
470**错误码:**
471
472以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
473
474| 错误码ID | 错误信息                            |
475| -------- | ----------------------------------- |
476| 17700004 | The specified user ID is not found. |
477| 17700025 | The specified type is invalid.      |
478
479**示例:**
480
481```ts
482import defaultAppMgr from '@ohos.bundle.defaultAppManager';
483let userId = 100;
484defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, userId)
485.then((data) => {
486    console.info('Operation successful.');
487})
488.catch((error) => {
489    console.error('Operation failed. Cause: ' + JSON.stringify(error));
490});
491
492defaultAppMgr.resetDefaultApplication("image/png", userId)
493.then((data) => {
494    console.info('Operation successful.');
495})
496.catch((error) => {
497    console.error('Operation failed. Cause: ' + JSON.stringify(error));
498});
499```
500
501## defaultAppMgr.resetDefaultApplication
502
503resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\<void>) : void;
504
505以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型重置默认应用,使用callback形式返回结果。
506
507**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
508
509**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
510
511**系统API:**  此接口为系统接口,三方应用不支持调用
512
513**参数:**
514
515| 参数名         | 类型     | 必填   | 说明                                      |
516| ----------- | ------ | ---- | --------------------------------------- |
517| type  | string | 是    | 要重置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
518| userId  | number | 是    | 用户ID。                          |
519| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
520
521**错误码:**
522
523以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
524
525| 错误码ID | 错误信息                            |
526| -------- | ----------------------------------- |
527| 17700004 | The specified user ID is not found. |
528| 17700025 | The specified type is invalid.      |
529
530**示例:**
531
532```ts
533import defaultAppMgr from '@ohos.bundle.defaultAppManager';
534let userId = 100;
535defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, userId, (err, data) => {
536    if (err) {
537        console.error('Operation failed. Cause: ' + JSON.stringify(err));
538        return;
539    }
540    console.info('Operation successful.');
541});
542
543defaultAppMgr.resetDefaultApplication("image/png", userId, (err, data) => {
544    if (err) {
545        console.error('Operation failed. Cause: ' + JSON.stringify(err));
546        return;
547    }
548    console.info('Operation successful.');
549});
550```
551
552## defaultAppMgr.resetDefaultApplication
553
554resetDefaultApplication(type: string, callback: AsyncCallback\<void>) : void;
555
556以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型重置默认应用,使用callback形式返回结果。
557
558**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
559
560**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
561
562**系统API:**  此接口为系统接口,三方应用不支持调用
563
564**参数:**
565
566| 参数名         | 类型     | 必填   | 说明                                      |
567| ----------- | ------ | ---- | --------------------------------------- |
568| type  | string | 是    | 要重置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
569| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
570
571**错误码:**
572
573以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
574
575| 错误码ID | 错误信息                            |
576| -------- | ----------------------------------- |
577| 17700004 | The specified user ID is not found. |
578| 17700025 | The specified type is invalid.      |
579
580**示例:**
581
582```ts
583import defaultAppMgr from '@ohos.bundle.defaultAppManager';
584defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
585    if (err) {
586        console.error('Operation failed. Cause: ' + JSON.stringify(err));
587        return;
588    }
589    console.info('Operation successful.');
590});
591
592defaultAppMgr.resetDefaultApplication("image/png", (err, data) => {
593    if (err) {
594        console.error('Operation failed. Cause: ' + JSON.stringify(err));
595        return;
596    }
597    console.info('Operation successful.');
598});
599```