1# @ohos.telephony.call (拨打电话) 2 3该模块提供呼叫管理功能,包括拨打电话、跳转到拨号界面、获取通话状态、格式化电话号码等。 4 5如需订阅通话状态请使用[`observer.on('callStateChange')`](js-apis-observer.md#observeroncallstatechange)。 6 7>**说明:** 8> 9>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 10 11## 导入模块 12 13```ts 14import { call } from '@kit.TelephonyKit'; 15``` 16 17 18## call.dial<sup>(deprecated)</sup> 19 20dial\(phoneNumber: string, callback: AsyncCallback\<boolean\>\): void 21 22拨打电话。使用callback异步回调。 23 24> **说明:** 25> 26> 从API version 6 开始支持,从API version 9 开始废弃。替代接口能力仅对系统应用开放。 27 28**需要权限**:ohos.permission.PLACE_CALL(该权限仅系统应用可申请) 29 30**系统能力**:SystemCapability.Telephony.CallManager 31 32**参数:** 33 34| 参数名 | 类型 | 必填 | 说明 | 35| ----------- | ---------------------------- | ---- | --------------------------------------- | 36| phoneNumber | string | 是 | 电话号码。 | 37| callback | AsyncCallback<boolean> | 是 | 回调函数,返回true为成功,false为失败。 | 38 39**示例:** 40 41```ts 42import { BusinessError } from '@kit.BasicServicesKit'; 43 44call.dial("138xxxxxxxx", (err: BusinessError, data: boolean) => { 45 console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); 46}); 47``` 48 49 50## call.dial<sup>(deprecated)</sup> 51 52dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback\<boolean\>\): void 53 54拨打电话,可设置通话参数。使用callback异步回调。 55 56> **说明:** 57> 58> 从API version 6 开始支持,从API version 9 开始废弃。替代接口能力仅对系统应用开放。 59 60**需要权限**:ohos.permission.PLACE_CALL(该权限仅系统应用可申请) 61 62**系统能力**:SystemCapability.Telephony.CallManager 63 64**参数:** 65 66| 参数名 | 类型 | 必填 | 说明 | 67| ----------- | ---------------------------- | ---- | --------------------------------------- | 68| phoneNumber | string | 是 | 电话号码。 | 69| options | [DialOptions](#dialoptions) | 是 | 通话参数,选择为语音通话还是视频通话。 | 70| callback | AsyncCallback<boolean> | 是 | 回调函数,返回true为成功,false为失败。 | 71 72**示例:** 73 74```ts 75import { BusinessError } from '@kit.BasicServicesKit'; 76 77let dialOptions: call.DialOptions = { 78 extras: false 79} 80call.dial("138xxxxxxxx", dialOptions, (err: BusinessError, data: boolean) => { 81 console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); 82}); 83``` 84 85## call.dial<sup>(deprecated)</sup> 86 87dial\(phoneNumber: string, options?: DialOptions\): Promise\<boolean\> 88 89拨打电话,可设置通话参数。使用Promise异步回调。 90 91> **说明:** 92> 93> 从API version 6 开始支持,从API version 9 开始废弃。替代接口能力仅对系统应用开放。 94 95**需要权限**:ohos.permission.PLACE_CALL(该权限仅系统应用可申请) 96 97**系统能力**:SystemCapability.Telephony.CallManager 98 99**参数:** 100 101| 参数名 | 类型 | 必填 | 说明 | 102| ----------- | --------------------------- | ---- | -------------------------------------- | 103| phoneNumber | string | 是 | 电话号码。 | 104| options | [DialOptions](#dialoptions) | 否 | 通话参数,选择为语音通话还是视频通话。 | 105 106**返回值:** 107 108| 类型 | 说明 | 109| ---------------------- | ------------------------------------------------------------ | 110| Promise<boolean> | 以Promise形式返回拨打电话的结果,返回true为成功,false为失败。 | 111 112**示例:** 113 114```ts 115import { BusinessError } from '@kit.BasicServicesKit'; 116 117let dialOptions: call.DialOptions = { 118 extras: false 119} 120call.dial("138xxxxxxxx", dialOptions).then((data: boolean) => { 121 console.log(`dial success, promise: data->${JSON.stringify(data)}`); 122}).catch((err: BusinessError) => { 123 console.error(`dial fail, promise: err->${JSON.stringify(err)}`); 124}); 125``` 126 127## call.makeCall<sup>7+</sup> 128 129makeCall\(phoneNumber: string, callback: AsyncCallback\<void\>\): void 130 131跳转到拨号界面,并显示待拨出的号码。使用callback异步回调。只支持在UIAbility中调用。 132 133**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 134 135**系统能力**:SystemCapability.Applications.Contacts 136 137**参数:** 138 139| 参数名 | 类型 | 必填 | 说明 | 140| ----------- | ------------------------- | ---- | ------------------------------------------ | 141| phoneNumber | string | 是 | 电话号码。 | 142| callback | AsyncCallback<void> | 是 | 以callback形式异步返回跳转拨号界面的结果。 | 143 144**错误码:** 145 146以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 147 148| 错误码ID | 错误信息 | 149| -------- | -------------------------------------------- | 150| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 151| 8300001 | Invalid parameter value. | 152| 8300002 | Operation failed. Cannot connect to service. | 153| 8300003 | System internal error. | 154| 8300999 | Unknown error code. | 155 156**示例:** 157 158```ts 159import { BusinessError } from '@kit.BasicServicesKit'; 160// 从API15开始支持tel格式电话号码,如:"tel:13xxxx" 161call.makeCall("138xxxxxxxx", (err: BusinessError) => { 162 if (err) { 163 console.error(`makeCall fail, err->${JSON.stringify(err)}`); 164 } else { 165 console.log(`makeCall success`); 166 } 167}); 168``` 169 170 171## call.makeCall<sup>7+</sup> 172 173makeCall\(phoneNumber: string\): Promise\<void\> 174 175跳转到拨号界面,并显示待拨出的号码。使用Promise异步回调。只支持在UIAbility中调用。 176 177**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 178 179**系统能力**:SystemCapability.Applications.Contacts 180 181**参数:** 182 183| 参数名 | 类型 | 必填 | 说明 | 184| ----------- | ------ | ---- | ---------- | 185| phoneNumber | string | 是 | 电话号码。 | 186 187**返回值:** 188 189| 类型 | 说明 | 190| ------------------- | --------------------------------- | 191| Promise<void> | 以Promise形式异步返回拨号的结果。 | 192 193**错误码:** 194 195以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 196 197| 错误码ID | 错误信息 | 198| -------- | -------------------------------------------- | 199| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 200| 8300001 | Invalid parameter value. | 201| 8300002 | Operation failed. Cannot connect to service. | 202| 8300003 | System internal error. | 203| 8300999 | Unknown error code. | 204 205**示例:** 206 207```ts 208import { BusinessError } from '@kit.BasicServicesKit'; 209// 从API15开始支持tel格式电话号码,如:"tel:13xxxx" 210call.makeCall("138xxxxxxxx").then(() => { 211 console.log(`makeCall success`); 212}).catch((err: BusinessError) => { 213 console.error(`makeCall fail, promise: err->${JSON.stringify(err)}`); 214}); 215``` 216 217## call.makeCall<sup>12+</sup> 218 219makeCall\(context: Context, phoneNumber: string\): Promise\<void\> 220 221跳转到拨号界面,并显示待拨出的号码。使用Promise异步回调。后台调用需要申请ohos.permission.START_ABILITIES_FROM_BACKGROUND权限。 222 223**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 224 225**系统能力**:SystemCapability.Applications.Contacts 226 227**参数:** 228 229| 参数名 | 类型 | 必填 | 说明 | 230| ----------- | ------ | ---- | ---------- | 231| context | Context | 是 | 应用上下文Context。 | 232| phoneNumber | string | 是 | 电话号码。 | 233 234**返回值:** 235 236| 类型 | 说明 | 237| ------------------- | --------------------------------- | 238| Promise<void> | 以Promise形式异步返回拨号的结果。 | 239 240**错误码:** 241 242以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 243 244| 错误码ID | 错误信息 | 245| -------- | -------------------------------------------- | 246| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 247| 8300002 | Operation failed. Cannot connect to service. | 248| 8300003 | System internal error. | 249 250**示例:** 251 252```ts 253import { BusinessError } from '@kit.BasicServicesKit'; 254// 获取context 255let context = this.getUIContext().getHostContext() as Context; 256// 从API15开始支持tel格式电话号码,如:"tel:13xxxx" 257call.makeCall(context, "138xxxxxxxx").then(() => { 258 console.log(`makeCall success`); 259}).catch((err: BusinessError) => { 260 console.error(`makeCall fail, promise: err->${JSON.stringify(err)}`); 261}); 262``` 263 264## call.hasCall 265 266hasCall\(callback: AsyncCallback\<boolean\>\): void 267 268判断是否存在通话。使用callback异步回调。 269 270**系统能力**:SystemCapability.Telephony.CallManager 271 272**参数:** 273 274| 参数名 | 类型 | 必填 | 说明 | 275| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 276| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示当前存在通话,false表示当前不存在通话。 | 277 278**示例:** 279 280```ts 281import { BusinessError } from '@kit.BasicServicesKit'; 282 283call.hasCall((err: BusinessError, data: boolean) => { 284 if (err) { 285 console.error(`hasCall fail, err->${JSON.stringify(err)}`); 286 } else { 287 console.log(`hasCall success, data->${JSON.stringify(data)}`); 288 } 289}); 290``` 291 292 293## call.hasCall 294 295hasCall\(\): Promise\<boolean\> 296 297判断是否存在通话。使用Promise异步回调。 298 299**系统能力**:SystemCapability.Telephony.CallManager 300 301**返回值:** 302 303| 类型 | 说明 | 304| ---------------------- | --------------------------------------- | 305| Promise<boolean> | 以Promise形式异步返回判断是否存在通话。返回true表示当前存在通话,false表示当前不存在通话。 | 306 307**示例:** 308 309```ts 310import { BusinessError } from '@kit.BasicServicesKit'; 311 312call.hasCall().then(() => { 313 console.log(`hasCall success`); 314}).catch((err: BusinessError) => { 315 console.error(`hasCall fail, promise: err->${JSON.stringify(err)}`); 316}); 317``` 318 319## call.hasCallSync<sup>10+</sup> 320 321hasCallSync\(\): boolean 322 323判断是否存在通话。 324 325**系统能力**:SystemCapability.Telephony.CallManager 326 327**返回值:** 328 329| 类型 | 说明 | 330| ---------------------- |-------------| 331| boolean | 返回判断是否存在通话。返回true表示当前存在通话,false表示当前不存在通话。 | 332 333**示例:** 334 335```ts 336let hasCall: boolean = call.hasCallSync(); 337console.log(`hasCallSync success, has call is ` + hasCall); 338``` 339 340 341## call.getCallState 342 343getCallState\(callback: AsyncCallback\<CallState\>\): void 344 345获取当前通话状态。使用callback异步回调。 346 347**系统能力**:SystemCapability.Telephony.CallManager 348 349**参数:** 350 351| 参数名 | 类型 | 必填 | 说明 | 352| -------- | -------------------------------------------- | ---- | ------------------------------------ | 353| callback | AsyncCallback<[CallState](#callstate)> | 是 | 回调函数,异步返回获取到的通话状态。 | 354 355**示例:** 356 357```ts 358import { BusinessError } from '@kit.BasicServicesKit'; 359 360call.getCallState((err: BusinessError, data: call.CallState) => { 361 if (err) { 362 console.error(`getCallState fail, err->${JSON.stringify(err)}`); 363 } else { 364 console.log(`getCallState success, data->${JSON.stringify(data)}`); 365 } 366}); 367``` 368 369 370## call.getCallState 371 372getCallState\(\): Promise\<CallState\> 373 374获取当前通话状态。使用Promise异步回调。 375 376**系统能力**:SystemCapability.Telephony.CallManager 377 378**返回值:** 379 380| 类型 | 说明 | 381| -------------------------------------- | --------------------------------------- | 382| Promise<[CallState](#callstate)> | 以Promise形式异步返回获取到的通话状态。 | 383 384**示例:** 385 386```ts 387import { BusinessError } from '@kit.BasicServicesKit'; 388 389call.getCallState().then((data: call.CallState) => { 390 console.log(`getCallState success, promise: data->${JSON.stringify(data)}`); 391}).catch((err: BusinessError) => { 392 console.error(`getCallState fail, promise: err->${JSON.stringify(err)}`); 393}); 394``` 395 396## call.getCallStateSync<sup>10+</sup> 397 398getCallStateSync\(\): CallState 399 400获取当前通话状态。 401 402**系统能力**:SystemCapability.Telephony.CallManager 403 404**返回值:** 405 406| 类型 | 说明 | 407| ------------------------------------- |-------------| 408| [CallState](#callstate) | 返回获取到的通话状态。 | 409 410**示例:** 411 412```ts 413let callState: call.CallState = call.getCallStateSync(); 414console.log(`the call state is:` + callState); 415``` 416 417## call.hasVoiceCapability<sup>7+</sup> 418 419hasVoiceCapability\(\): boolean 420 421检查当前设备是否具备语音通话能力。 422 423**系统能力**:SystemCapability.Telephony.CallManager 424 425**返回值:** 426 427| 类型 | 说明 | 428| ------- | ------------------------------------------------------------ | 429| boolean | 返回true表示设备具备语音通话能力,返回false表示设备不具备语音通话能力。 | 430 431```ts 432let result: boolean = call.hasVoiceCapability(); 433console.log(`hasVoiceCapability: ${JSON.stringify(result)}`); 434``` 435 436## call.isEmergencyPhoneNumber<sup>7+</sup> 437 438isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback\<boolean\>\): void 439 440判断是否是紧急电话号码。使用callback异步回调。 441 442**系统能力**:SystemCapability.Telephony.CallManager 443 444**参数:** 445 446| 参数名 | 类型 | 必填 | 说明 | 447| ----------- | ---------------------------- | ---- | ------------------------------------------------------------ | 448| phoneNumber | string | 是 | 电话号码。 | 449| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 450 451**错误码:** 452 453以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 454 455| 错误码ID | 错误信息 | 456| -------- | -------------------------------------------- | 457| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 458| 8300001 | Invalid parameter value. | 459| 8300002 | Operation failed. Cannot connect to service. | 460| 8300003 | System internal error. | 461| 8300999 | Unknown error code. | 462 463**示例:** 464 465```ts 466import { BusinessError } from '@kit.BasicServicesKit'; 467 468call.isEmergencyPhoneNumber("138xxxxxxxx", (err: BusinessError, data: boolean) => { 469 if (err) { 470 console.error(`isEmergencyPhoneNumber fail, err->${JSON.stringify(err)}`); 471 } else { 472 console.log(`isEmergencyPhoneNumber success, data->${JSON.stringify(data)}`); 473 } 474}); 475``` 476 477 478## call.isEmergencyPhoneNumber<sup>7+</sup> 479 480isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback\<boolean\>\): void 481 482根据电话号码参数,判断是否是紧急电话号码。使用callback异步回调。 483 484**系统能力**:SystemCapability.Telephony.CallManager 485 486**参数:** 487 488| 参数名 | 类型 | 必填 | 说明 | 489| ----------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ | 490| phoneNumber | string | 是 | 电话号码。 | 491| options | [EmergencyNumberOptions](#emergencynumberoptions7) | 是 | 电话号码参数。 | 492| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 493 494**错误码:** 495 496以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 497 498| 错误码ID | 错误信息 | 499| -------- | -------------------------------------------- | 500| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 501| 8300001 | Invalid parameter value. | 502| 8300002 | Operation failed. Cannot connect to service. | 503| 8300003 | System internal error. | 504| 8300999 | Unknown error code. | 505 506**示例:** 507 508```ts 509import { BusinessError } from '@kit.BasicServicesKit'; 510 511let options: call.EmergencyNumberOptions = {slotId: 1} 512call.isEmergencyPhoneNumber("112", options, (err: BusinessError, data: boolean) => { 513 if (err) { 514 console.error(`isEmergencyPhoneNumber fail, err->${JSON.stringify(err)}`); 515 } else { 516 console.log(`isEmergencyPhoneNumber success, data->${JSON.stringify(data)}`); 517 } 518}); 519``` 520 521 522## call.isEmergencyPhoneNumber<sup>7+</sup> 523 524isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): Promise\<boolean\> 525 526根据电话号码参数,判断是否是紧急电话号码。使用Promise异步回调。 527 528**系统能力**:SystemCapability.Telephony.CallManager 529 530**参数:** 531 532| 参数名 | 类型 | 必填 | 说明 | 533| ----------- | -------------------------------------------------- | ---- | -------------- | 534| phoneNumber | string | 是 | 电话号码。 | 535| options | [EmergencyNumberOptions](#emergencynumberoptions7) | 否 | 电话号码参数。 | 536 537**返回值:** 538 539| 类型 | 说明 | 540| ---------------------- | --------------------------------------------------- | 541| Promise<boolean> | 以Promise形式异步返回判断是否是紧急电话号码的结果。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 542 543**错误码:** 544 545以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 546 547| 错误码ID | 错误信息 | 548| -------- | -------------------------------------------- | 549| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 550| 8300001 | Invalid parameter value. | 551| 8300002 | Operation failed. Cannot connect to service. | 552| 8300003 | System internal error. | 553| 8300999 | Unknown error code. | 554 555**示例:** 556 557```ts 558import { BusinessError } from '@kit.BasicServicesKit'; 559 560let options: call.EmergencyNumberOptions = {slotId: 1} 561call.isEmergencyPhoneNumber("138xxxxxxxx", options).then((data: boolean) => { 562 console.log(`isEmergencyPhoneNumber success, promise: data->${JSON.stringify(data)}`); 563}).catch((err: BusinessError) => { 564 console.error(`isEmergencyPhoneNumber fail, promise: err->${JSON.stringify(err)}`); 565}); 566``` 567 568## call.formatPhoneNumber<sup>7+</sup> 569 570formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback\<string\>\): void 571 572格式化电话号码。使用callback异步回调。 573 574电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 575 576**系统能力**:SystemCapability.Telephony.CallManager 577 578**参数:** 579 580| 参数名 | 类型 | 必填 | 说明 | 581| ----------- | --------------------------- | ---- | ------------------------------------ | 582| phoneNumber | string | 是 | 电话号码。 | 583| callback | AsyncCallback<string> | 是 | 回调函数,返回格式化电话号码的结果。 | 584 585**错误码:** 586 587以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 588 589| 错误码ID | 错误信息 | 590| -------- | -------------------------------------------- | 591| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 592| 8300001 | Invalid parameter value. | 593| 8300002 | Operation failed. Cannot connect to service. | 594| 8300003 | System internal error. | 595| 8300999 | Unknown error code. | 596 597**示例:** 598 599```ts 600import { BusinessError } from '@kit.BasicServicesKit'; 601 602call.formatPhoneNumber("138xxxxxxxx", (err: BusinessError, data: string) => { 603 if (err) { 604 console.error(`formatPhoneNumber fail, err->${JSON.stringify(err)}`); 605 } else { 606 console.log(`formatPhoneNumber success, data->${JSON.stringify(data)}`); 607 } 608}); 609``` 610 611## call.formatPhoneNumber<sup>7+</sup> 612 613formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback\<string\>\): void 614 615格式化电话号码,可设置格式化参数。使用callback异步回调。 616 617电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 618 619**系统能力**:SystemCapability.Telephony.CallManager 620 621**参数:** 622 623| 参数名 | 类型 | 必填 | 说明 | 624| ----------- | -------------------------------------------- | ---- | ------------------------------------ | 625| phoneNumber | string | 是 | 电话号码。 | 626| options | [NumberFormatOptions](#numberformatoptions7) | 是 | 格式化参数,如国家码。 | 627| callback | AsyncCallback<string> | 是 | 回调函数,返回格式化电话号码的结果。 | 628 629**错误码:** 630 631以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 632 633| 错误码ID | 错误信息 | 634| -------- | -------------------------------------------- | 635| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 636| 8300001 | Invalid parameter value. | 637| 8300002 | Operation failed. Cannot connect to service. | 638| 8300003 | System internal error. | 639| 8300999 | Unknown error code. | 640 641**示例:** 642 643```ts 644import { BusinessError } from '@kit.BasicServicesKit'; 645 646let options: call.NumberFormatOptions = { 647 countryCode: "CN" 648} 649call.formatPhoneNumber("138xxxxxxxx", options, (err: BusinessError, data: string) => { 650 if (err) { 651 console.error(`formatPhoneNumber fail, err->${JSON.stringify(err)}`); 652 } else { 653 console.log(`formatPhoneNumber success, data->${JSON.stringify(data)}`); 654 } 655}); 656``` 657 658 659## call.formatPhoneNumber<sup>7+</sup> 660 661formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise\<string\> 662 663格式化电话号码,可设置格式化参数。使用Promise异步回调。 664 665电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 666 667**系统能力**:SystemCapability.Telephony.CallManager 668 669**参数:** 670 671| 参数名 | 类型 | 必填 | 说明 | 672| ----------- | -------------------------------------------- | ---- | ---------------------- | 673| phoneNumber | string | 是 | 电话号码。 | 674| options | [NumberFormatOptions](#numberformatoptions7) | 否 | 格式化参数,如国家码。 | 675 676**返回值:** 677 678| 类型 | 说明 | 679| --------------------- | ------------------------------------------- | 680| Promise<string> | 以Promise形式异步返回格式化电话号码的结果。 | 681 682**错误码:** 683 684以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 685 686| 错误码ID | 错误信息 | 687| -------- | -------------------------------------------- | 688| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 689| 8300001 | Invalid parameter value. | 690| 8300002 | Operation failed. Cannot connect to service. | 691| 8300003 | System internal error. | 692| 8300999 | Unknown error code. | 693 694**示例:** 695 696```ts 697import { BusinessError } from '@kit.BasicServicesKit'; 698 699let options: call.NumberFormatOptions = { 700 countryCode: "CN" 701} 702call.formatPhoneNumber("138xxxxxxxx", options).then((data: string) => { 703 console.log(`formatPhoneNumber success, promise: data->${JSON.stringify(data)}`); 704}).catch((err: BusinessError) => { 705 console.error(`formatPhoneNumber fail, promise: err->${JSON.stringify(err)}`); 706}); 707``` 708 709## call.formatPhoneNumberToE164<sup>7+</sup> 710 711formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: AsyncCallback\<string\>\): void 712 713将电话号码格式化为E.164表示形式,使用callback异步回调。 714 715待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。 716 717**系统能力**:SystemCapability.Telephony.CallManager 718 719**参数:** 720 721| 参数名 | 类型 | 必填 | 说明 | 722| ----------- | --------------------------- | ---- | ----------------------------------------------------- | 723| phoneNumber | string | 是 | 电话号码。 | 724| countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 | 725| callback | AsyncCallback<string> | 是 | 回调函数,返回将电话号码格式化为E.164表示形式的结果。 | 726 727**错误码:** 728 729以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 730 731| 错误码ID | 错误信息 | 732| -------- | -------------------------------------------- | 733| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 734| 8300001 | Invalid parameter value. | 735| 8300002 | Operation failed. Cannot connect to service. | 736| 8300003 | System internal error. | 737| 8300999 | Unknown error code. | 738 739**示例:** 740 741```ts 742import { BusinessError } from '@kit.BasicServicesKit'; 743 744call.formatPhoneNumberToE164("138xxxxxxxx", "CN", (err: BusinessError, data: string) => { 745 if (err) { 746 console.error(`formatPhoneNumberToE164 fail, err->${JSON.stringify(err)}`); 747 } else { 748 console.log(`formatPhoneNumberToE164 success, data->${JSON.stringify(data)}`); 749 } 750}); 751``` 752 753 754## call.formatPhoneNumberToE164<sup>7+</sup> 755 756formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise\<string\> 757 758将电话号码格式化为E.164表示形式,使用Promise异步回调。 759 760待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。 761 762支持所有国家码。 763 764**系统能力**:SystemCapability.Telephony.CallManager 765 766**参数:** 767 768| 参数名 | 类型 | 必填 | 说明 | 769| ----------- | ------ | ---- | ---------------------------------------- | 770| phoneNumber | string | 是 | 电话号码。 | 771| countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 | 772 773**返回值:** 774 775| 类型 | 说明 | 776| --------------------- | ------------------------------------------------------------ | 777| Promise<string> | 以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。 | 778 779**错误码:** 780 781以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 782 783| 错误码ID | 错误信息 | 784| -------- | -------------------------------------------- | 785| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 786| 8300001 | Invalid parameter value. | 787| 8300002 | Operation failed. Cannot connect to service. | 788| 8300003 | System internal error. | 789| 8300999 | Unknown error code. | 790 791**示例:** 792 793```ts 794import { BusinessError } from '@kit.BasicServicesKit'; 795 796call.formatPhoneNumberToE164("138xxxxxxxx", "CN").then((data: string) => { 797 console.log(`formatPhoneNumberToE164 success, promise: data->${JSON.stringify(data)}`); 798}).catch((err: BusinessError) => { 799 console.error(`formatPhoneNumberToE164 fail, promise: err->${JSON.stringify(err)}`); 800}); 801``` 802 803## DialOptions 804 805拨打电话的可选参数。 806 807**系统能力**:SystemCapability.Telephony.CallManager 808 809| 名称 | 类型 | 必填 | 说明 | 810| ------------------------ | ---------------------------------- | ---- | ----------------------------------------------------------------------------------------------- | 811| extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- false:语音通话。 | 812 813## CallState 814 815通话状态码。 816 817**系统能力**:SystemCapability.Telephony.CallManager 818 819| 名称 | 值 | 说明 | 820| ------------------ | ---- | ------------------------------------------------------------ | 821| CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。 | 822| CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。 | 823| CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。 | 824| CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 | 825| CALL_STATE_ANSWERED<sup>11+</sup> | 3 | 表示来电已经接听。 | 826 827## EmergencyNumberOptions<sup>7+</sup> 828 829判断是否是紧急电话号码的可选参数。 830 831**系统能力**:SystemCapability.Telephony.CallManager 832 833| 名称 | 类型 | 必填 | 说明 | 834| ------ | ------ | ---- | ---------------------------------------------- | 835| slotId | number | 否 | 卡槽ID:<br/>- 卡槽1:`0`。<br/>- 卡槽2:`1`。 | 836 837## NumberFormatOptions<sup>7+</sup> 838 839格式化号码的可选参数。 840 841**系统能力**:SystemCapability.Telephony.CallManager 842 843| 名称 | 类型 | 必填 | 说明 | 844| ----------- | ------ | ---- | ---------------------------------------------------------- | 845| countryCode | string | 否 | 国家码,支持所有国家的国家码,如:CN(中国)。默认为:CN。 | 846