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```