• 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| 17700023 | The specified default app does not exist. |
236| 17700025 | The specified type is invalid.            |
237
238**示例:**
239
240```ts
241import defaultAppMgr from '@ohos.bundle.defaultAppManager';
242defaultAppMgr.getDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
243    if (err) {
244        console.error('Operation failed. Cause: ' + JSON.stringify(err));
245        return;
246    }
247    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
248});
249defaultAppMgr.getDefaultApplication("image/png", (err, data) => {
250    if (err) {
251        console.error('Operation failed. Cause: ' + JSON.stringify(err));
252        return;
253    }
254    console.info('Operation successful. bundleInfo:' + JSON.stringify(data));
255});
256```
257
258## defaultAppMgr.setDefaultApplication
259
260setDefaultApplication(type: string, elementName: ElementName, userId?: number): Promise\<void>
261
262以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型设置默认应用,使用Promise形式返回结果。
263
264**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
265
266**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
267
268**系统API:**  此接口为系统接口,三方应用不支持调用
269
270**参数:**
271
272| 参数名         | 类型     | 必填   | 说明                                      |
273| ----------- | ------ | ---- | --------------------------------------- |
274| type  | string | 是    | 要设置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
275| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
276| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                           |
277
278**返回值:**
279
280| 类型           | 说明                               |
281| -------------- | ---------------------------------- |
282| Promise\<void> | Promise对象,无返回结果的Promise对象。 |
283
284**错误码:**
285
286以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
287
288| 错误码ID | 错误信息                                       |
289| -------- | ---------------------------------------------- |
290| 17700004 | The specified user ID is not found.            |
291| 17700025 | The specified type is invalid.                 |
292| 17700028 | The specified ability does not match the type. |
293
294**示例:**
295
296```ts
297import defaultAppMgr from '@ohos.bundle.defaultAppManager';
298defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
299    bundleName: "com.test.app",
300    moduleName: "module01",
301    abilityName: "MainAbility"
302}).then((data) => {
303    console.info('Operation successful.');
304}).catch((error) => {
305    console.error('Operation failed. Cause: ' + JSON.stringify(error));
306});
307
308let userId = 100;
309defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
310    bundleName: "com.test.app",
311    moduleName: "module01",
312    abilityName: "MainAbility"
313}, userId).then((data) => {
314    console.info('Operation successful.');
315}).catch((error) => {
316    console.error('Operation failed. Cause: ' + JSON.stringify(error));
317});
318
319defaultAppMgr.setDefaultApplication("image/png", {
320    bundleName: "com.test.app",
321    moduleName: "module01",
322    abilityName: "MainAbility"
323}, userId).then((data) => {
324    console.info('Operation successful.');
325}).catch((error) => {
326    console.error('Operation failed. Cause: ' + JSON.stringify(error));
327});
328```
329
330## defaultAppMgr.setDefaultApplication
331
332setDefaultApplication(type: string, elementName: ElementName, userId: number, callback: AsyncCallback\<void>) : void;
333
334以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型设置默认应用,使用callback形式返回结果。
335
336**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
337
338**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
339
340**系统API:**  此接口为系统接口,三方应用不支持调用
341
342**参数:**
343
344| 参数名         | 类型     | 必填   | 说明                                      |
345| ----------- | ------ | ---- | --------------------------------------- |
346| type  | string | 是    | 要设置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
347| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
348| userId  | number | 是    | 用户ID。                           |
349| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
350
351**错误码:**
352
353以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
354
355| 错误码ID | 错误信息                                       |
356| -------- | ---------------------------------------------- |
357| 17700004 | The specified user ID is not found.            |
358| 17700025 | The specified type is invalid.                 |
359| 17700028 | The specified ability does not match the type. |
360
361**示例:**
362
363```ts
364import defaultAppMgr from '@ohos.bundle.defaultAppManager';
365let userId = 100;
366defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
367    bundleName: "com.test.app",
368    moduleName: "module01",
369    abilityName: "MainAbility"
370}, userId, (err, data) => {
371    if (err) {
372        console.error('Operation failed. Cause: ' + JSON.stringify(err));
373        return;
374    }
375    console.info('Operation successful.');
376 });
377
378defaultAppMgr.setDefaultApplication("image/png", {
379    bundleName: "com.test.app",
380    moduleName: "module01",
381    abilityName: "MainAbility"
382}, userId, (err, data) => {
383    if (err) {
384        console.error('Operation failed. Cause: ' + JSON.stringify(err));
385        return;
386    }
387    console.info('Operation successful.');
388 });
389```
390
391## defaultAppMgr.setDefaultApplication
392
393setDefaultApplication(type: string, elementName: ElementName, callback: AsyncCallback\<void>) : void;
394
395以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型设置默认应用,使用callback形式返回结果。
396
397**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
398
399**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
400
401**系统API:**  此接口为系统接口,三方应用不支持调用
402
403**参数:**
404
405| 参数名         | 类型     | 必填   | 说明                                      |
406| ----------- | ------ | ---- | --------------------------------------- |
407| type  | string | 是    | 要设置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
408| elementName  | [ElementName](js-apis-bundle-ElementName.md) | 是    | 要设置为默认应用的组件信息。                           |
409| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
410
411**错误码:**
412
413以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
414
415| 错误码ID | 错误信息                                       |
416| -------- | ---------------------------------------------- |
417| 17700025 | The specified type is invalid.                 |
418| 17700028 | The specified ability does not match the type. |
419
420**示例:**
421
422```ts
423import defaultAppMgr from '@ohos.bundle.defaultAppManager';
424defaultAppMgr.setDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, {
425    bundleName: "com.test.app",
426    moduleName: "module01",
427    abilityName: "MainAbility"
428}, (err, data) => {
429    if (err) {
430        console.error('Operation failed. Cause: ' + JSON.stringify(err));
431        return;
432    }
433    console.info('Operation successful.');
434 });
435
436defaultAppMgr.setDefaultApplication("image/png", {
437    bundleName: "com.test.app",
438    moduleName: "module01",
439    abilityName: "MainAbility"
440}, (err, data) => {
441    if (err) {
442        console.error('Operation failed. Cause: ' + JSON.stringify(err));
443        return;
444    }
445    console.info('Operation successful.');
446 });
447```
448
449## defaultAppMgr.resetDefaultApplication
450
451resetDefaultApplication(type: string, userId?: number): Promise\<void>
452
453以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型重置默认应用,使用Promise形式返回结果。
454
455**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
456
457**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
458
459**系统API:**  此接口为系统接口,三方应用不支持调用
460
461**参数:**
462
463| 参数名         | 类型     | 必填   | 说明                                      |
464| ----------- | ------ | ---- | --------------------------------------- |
465| type  | string | 是    | 要重置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
466| userId  | number | 否    | 用户ID。默认值:调用方所在用户。                           |
467
468**错误码:**
469
470以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
471
472| 错误码ID | 错误信息                            |
473| -------- | ----------------------------------- |
474| 17700004 | The specified user ID is not found. |
475| 17700025 | The specified type is invalid.      |
476
477**示例:**
478
479```ts
480import defaultAppMgr from '@ohos.bundle.defaultAppManager';
481let userId = 100;
482defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, userId)
483.then((data) => {
484    console.info('Operation successful.');
485})
486.catch((error) => {
487    console.error('Operation failed. Cause: ' + JSON.stringify(error));
488});
489
490defaultAppMgr.resetDefaultApplication("image/png", userId)
491.then((data) => {
492    console.info('Operation successful.');
493})
494.catch((error) => {
495    console.error('Operation failed. Cause: ' + JSON.stringify(error));
496});
497```
498
499## defaultAppMgr.resetDefaultApplication
500
501resetDefaultApplication(type: string, userId: number, callback: AsyncCallback\<void>) : void;
502
503以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型重置默认应用,使用callback形式返回结果。
504
505**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
506
507**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
508
509**系统API:**  此接口为系统接口,三方应用不支持调用
510
511**参数:**
512
513| 参数名         | 类型     | 必填   | 说明                                      |
514| ----------- | ------ | ---- | --------------------------------------- |
515| type  | string | 是    | 要重置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
516| userId  | number | 是    | 用户ID。                          |
517| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
518
519**错误码:**
520
521以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
522
523| 错误码ID | 错误信息                            |
524| -------- | ----------------------------------- |
525| 17700004 | The specified user ID is not found. |
526| 17700025 | The specified type is invalid.      |
527
528**示例:**
529
530```ts
531import defaultAppMgr from '@ohos.bundle.defaultAppManager';
532let userId = 100;
533defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, userId, (err, data) => {
534    if (err) {
535        console.error('Operation failed. Cause: ' + JSON.stringify(err));
536        return;
537    }
538    console.info('Operation successful.');
539});
540
541defaultAppMgr.resetDefaultApplication("image/png", userId, (err, data) => {
542    if (err) {
543        console.error('Operation failed. Cause: ' + JSON.stringify(err));
544        return;
545    }
546    console.info('Operation successful.');
547});
548```
549
550## defaultAppMgr.resetDefaultApplication
551
552resetDefaultApplication(type: string, callback: AsyncCallback\<void>) : void;
553
554以异步方法根据系统已定义的应用类型或者符合媒体类型格式(type/subtype)的文件类型重置默认应用,使用callback形式返回结果。
555
556**需要权限:** ohos.permission.SET_DEFAULT_APPLICATION
557
558**系统能力:** SystemCapability.BundleManager.BundleFramework.DefaultApp
559
560**系统API:**  此接口为系统接口,三方应用不支持调用
561
562**参数:**
563
564| 参数名         | 类型     | 必填   | 说明                                      |
565| ----------- | ------ | ---- | --------------------------------------- |
566| type  | string | 是    | 要重置的应用类型,取[ApplicationType](#defaultappmgrapplicationtype)中的值,或者符合媒体类型格式的文件类型。       |
567| callback    | AsyncCallback\<void> | 是    | 程序启动作为入参的回调函数。                    |
568
569**错误码:**
570
571以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
572
573| 错误码ID | 错误信息                            |
574| -------- | ----------------------------------- |
575| 17700025 | The specified type is invalid.      |
576
577**示例:**
578
579```ts
580import defaultAppMgr from '@ohos.bundle.defaultAppManager';
581defaultAppMgr.resetDefaultApplication(defaultAppMgr.ApplicationType.BROWSER, (err, data) => {
582    if (err) {
583        console.error('Operation failed. Cause: ' + JSON.stringify(err));
584        return;
585    }
586    console.info('Operation successful.');
587});
588
589defaultAppMgr.resetDefaultApplication("image/png", (err, data) => {
590    if (err) {
591        console.error('Operation failed. Cause: ' + JSON.stringify(err));
592        return;
593    }
594    console.info('Operation successful.');
595});
596```