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