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 '@ohos.telephony.call'; 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 '@ohos.base'; 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 '@ohos.base'; 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 '@ohos.base'; 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异步回调。 132 133**系统能力**:SystemCapability.Applications.Contacts 134 135**参数:** 136 137| 参数名 | 类型 | 必填 | 说明 | 138| ----------- | ------------------------- | ---- | ------------------------------------------ | 139| phoneNumber | string | 是 | 电话号码。 | 140| callback | AsyncCallback<void> | 是 | 以callback形式异步返回跳转拨号界面的结果。 | 141 142**错误码:** 143 144以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 145 146| 错误码ID | 错误信息 | 147| -------- | -------------------------------------------- | 148| 401 | Parameter error. | 149| 8300001 | Invalid parameter value. | 150| 8300002 | Operation failed. Cannot connect to service. | 151| 8300003 | System internal error. | 152| 8300999 | Unknown error code. | 153 154**示例:** 155 156```ts 157import { BusinessError } from '@ohos.base'; 158 159call.makeCall("138xxxxxxxx", (err: BusinessError) => { 160 if (err) { 161 console.error(`makeCall fail, err->${JSON.stringify(err)}`); 162 } else { 163 console.log(`makeCall success`); 164 } 165}); 166``` 167 168 169## call.makeCall<sup>7+</sup> 170 171makeCall\(phoneNumber: string\): Promise\<void\> 172 173跳转到拨号界面,并显示待拨出的号码。使用Promise异步回调。 174 175**系统能力**:SystemCapability.Applications.Contacts 176 177**参数:** 178 179| 参数名 | 类型 | 必填 | 说明 | 180| ----------- | ------ | ---- | ---------- | 181| phoneNumber | string | 是 | 电话号码。 | 182 183**返回值:** 184 185| 类型 | 说明 | 186| ------------------- | --------------------------------- | 187| Promise<void> | 以Promise形式异步返回拨号的结果。 | 188 189**错误码:** 190 191以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 192 193| 错误码ID | 错误信息 | 194| -------- | -------------------------------------------- | 195| 401 | Parameter error. | 196| 8300001 | Invalid parameter value. | 197| 8300002 | Operation failed. Cannot connect to service. | 198| 8300003 | System internal error. | 199| 8300999 | Unknown error code. | 200 201**示例:** 202 203```ts 204import { BusinessError } from '@ohos.base'; 205 206call.makeCall("138xxxxxxxx").then(() => { 207 console.log(`makeCall success`); 208}).catch((err: BusinessError) => { 209 console.error(`makeCall fail, promise: err->${JSON.stringify(err)}`); 210}); 211``` 212 213## call.hasCall 214 215hasCall\(callback: AsyncCallback\<boolean\>\): void 216 217判断是否存在通话。使用callback异步回调。 218 219**系统能力**:SystemCapability.Telephony.CallManager 220 221**参数:** 222 223| 参数名 | 类型 | 必填 | 说明 | 224| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 225| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示当前存在通话,false表示当前不存在通话。 | 226 227**示例:** 228 229```ts 230import { BusinessError } from '@ohos.base'; 231 232call.hasCall((err: BusinessError, data: boolean) => { 233 if (err) { 234 console.error(`hasCall fail, err->${JSON.stringify(err)}`); 235 } else { 236 console.log(`hasCall success, data->${JSON.stringify(data)}`); 237 } 238}); 239``` 240 241 242## call.hasCall 243 244hasCall\(\): Promise\<boolean\> 245 246判断是否存在通话。使用Promise异步回调。 247 248**系统能力**:SystemCapability.Telephony.CallManager 249 250**返回值:** 251 252| 类型 | 说明 | 253| ---------------------- | --------------------------------------- | 254| Promise<boolean> | 以Promise形式异步返回判断是否存在通话。返回true表示当前存在通话,false表示当前不存在通话。 | 255 256**示例:** 257 258```ts 259import { BusinessError } from '@ohos.base'; 260 261call.hasCall().then(() => { 262 console.log(`hasCall success`); 263}).catch((err: BusinessError) => { 264 console.error(`hasCall fail, promise: err->${JSON.stringify(err)}`); 265}); 266``` 267 268## call.hasCallSync<sup>10+</sup> 269 270hasCallSync\(\): boolean 271 272判断是否存在通话。 273 274**系统能力**:SystemCapability.Telephony.CallManager 275 276**返回值:** 277 278| 类型 | 说明 | 279| ---------------------- |-------------| 280| boolean | 返回判断是否存在通话。返回true表示当前存在通话,false表示当前不存在通话。 | 281 282**示例:** 283 284```ts 285let hasCall: boolean = call.hasCallSync(); 286console.log(`hasCallSync success, has call is ` + hasCall); 287``` 288 289 290## call.getCallState 291 292getCallState\(callback: AsyncCallback\<CallState\>\): void 293 294获取当前通话状态。使用callback异步回调。 295 296**系统能力**:SystemCapability.Telephony.CallManager 297 298**参数:** 299 300| 参数名 | 类型 | 必填 | 说明 | 301| -------- | -------------------------------------------- | ---- | ------------------------------------ | 302| callback | AsyncCallback<[CallState](#callstate)> | 是 | 回调函数,异步返回获取到的通话状态。 | 303 304**示例:** 305 306```ts 307import { BusinessError } from '@ohos.base'; 308 309call.getCallState((err: BusinessError, data: call.CallState) => { 310 if (err) { 311 console.error(`getCallState fail, err->${JSON.stringify(err)}`); 312 } else { 313 console.log(`getCallState success, data->${JSON.stringify(data)}`); 314 } 315}); 316``` 317 318 319## call.getCallState 320 321getCallState\(\): Promise\<CallState\> 322 323获取当前通话状态。使用Promise异步回调。 324 325**系统能力**:SystemCapability.Telephony.CallManager 326 327**返回值:** 328 329| 类型 | 说明 | 330| -------------------------------------- | --------------------------------------- | 331| Promise<[CallState](#callstate)> | 以Promise形式异步返回获取到的通话状态。 | 332 333**示例:** 334 335```ts 336import { BusinessError } from '@ohos.base'; 337 338call.getCallState().then((data: call.CallState) => { 339 console.log(`getCallState success, promise: data->${JSON.stringify(data)}`); 340}).catch((err: BusinessError) => { 341 console.error(`getCallState fail, promise: err->${JSON.stringify(err)}`); 342}); 343``` 344 345## call.getCallStateSync<sup>10+</sup> 346 347getCallStateSync\(\): CallState 348 349获取当前通话状态。 350 351**系统能力**:SystemCapability.Telephony.CallManager 352 353**返回值:** 354 355| 类型 | 说明 | 356| ------------------------------------- |-------------| 357| [CallState](#callstate) | 返回获取到的通话状态。 | 358 359**示例:** 360 361```ts 362let callState: call.CallState = call.getCallStateSync(); 363console.log(`the call state is:` + callState); 364``` 365 366## call.hasVoiceCapability<sup>7+</sup> 367 368hasVoiceCapability\(\): boolean 369 370检查当前设备是否具备语音通话能力。 371 372**系统能力**:SystemCapability.Telephony.CallManager 373 374**返回值:** 375 376| 类型 | 说明 | 377| ------- | ------------------------------------------------------------ | 378| boolean | 返回true表示设备具备语音通话能力,返回false表示设备不具备语音通话能力。 | 379 380```ts 381let result: boolean = call.hasVoiceCapability(); 382console.log(`hasVoiceCapability: ${JSON.stringify(result)}`); 383``` 384 385## call.isEmergencyPhoneNumber<sup>7+</sup> 386 387isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback\<boolean\>\): void 388 389判断是否是紧急电话号码。使用callback异步回调。 390 391**系统能力**:SystemCapability.Telephony.CallManager 392 393**参数:** 394 395| 参数名 | 类型 | 必填 | 说明 | 396| ----------- | ---------------------------- | ---- | ------------------------------------------------------------ | 397| phoneNumber | string | 是 | 电话号码。 | 398| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 399 400**错误码:** 401 402以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 403 404| 错误码ID | 错误信息 | 405| -------- | -------------------------------------------- | 406| 401 | Parameter error. | 407| 8300001 | Invalid parameter value. | 408| 8300002 | Operation failed. Cannot connect to service. | 409| 8300003 | System internal error. | 410| 8300999 | Unknown error code. | 411 412**示例:** 413 414```ts 415import { BusinessError } from '@ohos.base'; 416 417call.isEmergencyPhoneNumber("138xxxxxxxx", (err: BusinessError, data: boolean) => { 418 if (err) { 419 console.error(`isEmergencyPhoneNumber fail, err->${JSON.stringify(err)}`); 420 } else { 421 console.log(`isEmergencyPhoneNumber success, data->${JSON.stringify(data)}`); 422 } 423}); 424``` 425 426 427## call.isEmergencyPhoneNumber<sup>7+</sup> 428 429isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback\<boolean\>\): void 430 431根据电话号码参数,判断是否是紧急电话号码。使用callback异步回调。 432 433**系统能力**:SystemCapability.Telephony.CallManager 434 435**参数:** 436 437| 参数名 | 类型 | 必填 | 说明 | 438| ----------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ | 439| phoneNumber | string | 是 | 电话号码。 | 440| options | [EmergencyNumberOptions](#emergencynumberoptions7) | 是 | 电话号码参数。 | 441| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 442 443**错误码:** 444 445以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 446 447| 错误码ID | 错误信息 | 448| -------- | -------------------------------------------- | 449| 401 | Parameter error. | 450| 8300001 | Invalid parameter value. | 451| 8300002 | Operation failed. Cannot connect to service. | 452| 8300003 | System internal error. | 453| 8300999 | Unknown error code. | 454 455**示例:** 456 457```ts 458import { BusinessError } from '@ohos.base'; 459 460let options: call.EmergencyNumberOptions = {slotId: 1} 461call.isEmergencyPhoneNumber("112", options, (err: BusinessError, data: boolean) => { 462 if (err) { 463 console.error(`isEmergencyPhoneNumber fail, err->${JSON.stringify(err)}`); 464 } else { 465 console.log(`isEmergencyPhoneNumber success, data->${JSON.stringify(data)}`); 466 } 467}); 468``` 469 470 471## call.isEmergencyPhoneNumber<sup>7+</sup> 472 473isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): Promise\<boolean\> 474 475根据电话号码参数,判断是否是紧急电话号码。使用Promise异步回调。 476 477**系统能力**:SystemCapability.Telephony.CallManager 478 479**参数:** 480 481| 参数名 | 类型 | 必填 | 说明 | 482| ----------- | -------------------------------------------------- | ---- | -------------- | 483| phoneNumber | string | 是 | 电话号码。 | 484| options | [EmergencyNumberOptions](#emergencynumberoptions7) | 否 | 电话号码参数。 | 485 486**返回值:** 487 488| 类型 | 说明 | 489| ---------------------- | --------------------------------------------------- | 490| Promise<boolean> | 以Promise形式异步返回判断是否是紧急电话号码的结果。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 491 492**错误码:** 493 494以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 495 496| 错误码ID | 错误信息 | 497| -------- | -------------------------------------------- | 498| 401 | Parameter error. | 499| 8300001 | Invalid parameter value. | 500| 8300002 | Operation failed. Cannot connect to service. | 501| 8300003 | System internal error. | 502| 8300999 | Unknown error code. | 503 504**示例:** 505 506```ts 507import { BusinessError } from '@ohos.base'; 508 509let options: call.EmergencyNumberOptions = {slotId: 1} 510call.isEmergencyPhoneNumber("138xxxxxxxx", options).then((data: boolean) => { 511 console.log(`isEmergencyPhoneNumber success, promise: data->${JSON.stringify(data)}`); 512}).catch((err: BusinessError) => { 513 console.error(`isEmergencyPhoneNumber fail, promise: err->${JSON.stringify(err)}`); 514}); 515``` 516 517## call.formatPhoneNumber<sup>7+</sup> 518 519formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback\<string\>\): void 520 521格式化电话号码。使用callback异步回调。 522 523电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 524 525**系统能力**:SystemCapability.Telephony.CallManager 526 527**参数:** 528 529| 参数名 | 类型 | 必填 | 说明 | 530| ----------- | --------------------------- | ---- | ------------------------------------ | 531| phoneNumber | string | 是 | 电话号码。 | 532| callback | AsyncCallback<string> | 是 | 回调函数,返回格式化电话号码的结果。 | 533 534**错误码:** 535 536以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 537 538| 错误码ID | 错误信息 | 539| -------- | -------------------------------------------- | 540| 401 | Parameter error. | 541| 8300001 | Invalid parameter value. | 542| 8300002 | Operation failed. Cannot connect to service. | 543| 8300003 | System internal error. | 544| 8300999 | Unknown error code. | 545 546**示例:** 547 548```ts 549import { BusinessError } from '@ohos.base'; 550 551call.formatPhoneNumber("138xxxxxxxx", (err: BusinessError, data: string) => { 552 if (err) { 553 console.error(`formatPhoneNumber fail, err->${JSON.stringify(err)}`); 554 } else { 555 console.log(`formatPhoneNumber success, data->${JSON.stringify(data)}`); 556 } 557}); 558``` 559 560## call.formatPhoneNumber<sup>7+</sup> 561 562formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback\<string\>\): void 563 564格式化电话号码,可设置格式化参数。使用callback异步回调。 565 566电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 567 568**系统能力**:SystemCapability.Telephony.CallManager 569 570**参数:** 571 572| 参数名 | 类型 | 必填 | 说明 | 573| ----------- | -------------------------------------------- | ---- | ------------------------------------ | 574| phoneNumber | string | 是 | 电话号码。 | 575| options | [NumberFormatOptions](#numberformatoptions7) | 是 | 格式化参数,如国家码。 | 576| callback | AsyncCallback<string> | 是 | 回调函数,返回格式化电话号码的结果。 | 577 578**错误码:** 579 580以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 581 582| 错误码ID | 错误信息 | 583| -------- | -------------------------------------------- | 584| 401 | Parameter error. | 585| 8300001 | Invalid parameter value. | 586| 8300002 | Operation failed. Cannot connect to service. | 587| 8300003 | System internal error. | 588| 8300999 | Unknown error code. | 589 590**示例:** 591 592```ts 593import { BusinessError } from '@ohos.base'; 594 595let options: call.NumberFormatOptions = { 596 countryCode: "CN" 597} 598call.formatPhoneNumber("138xxxxxxxx", options, (err: BusinessError, data: string) => { 599 if (err) { 600 console.error(`formatPhoneNumber fail, err->${JSON.stringify(err)}`); 601 } else { 602 console.log(`formatPhoneNumber success, data->${JSON.stringify(data)}`); 603 } 604}); 605``` 606 607 608## call.formatPhoneNumber<sup>7+</sup> 609 610formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise\<string\> 611 612格式化电话号码,可设置格式化参数。使用Promise异步回调。 613 614电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 615 616**系统能力**:SystemCapability.Telephony.CallManager 617 618**参数:** 619 620| 参数名 | 类型 | 必填 | 说明 | 621| ----------- | -------------------------------------------- | ---- | ---------------------- | 622| phoneNumber | string | 是 | 电话号码。 | 623| options | [NumberFormatOptions](#numberformatoptions7) | 否 | 格式化参数,如国家码。 | 624 625**返回值:** 626 627| 类型 | 说明 | 628| --------------------- | ------------------------------------------- | 629| Promise<string> | 以Promise形式异步返回格式化电话号码的结果。 | 630 631**错误码:** 632 633以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 634 635| 错误码ID | 错误信息 | 636| -------- | -------------------------------------------- | 637| 401 | Parameter error. | 638| 8300001 | Invalid parameter value. | 639| 8300002 | Operation failed. Cannot connect to service. | 640| 8300003 | System internal error. | 641| 8300999 | Unknown error code. | 642 643**示例:** 644 645```ts 646import { BusinessError } from '@ohos.base'; 647 648let options: call.NumberFormatOptions = { 649 countryCode: "CN" 650} 651call.formatPhoneNumber("138xxxxxxxx", options).then((data: string) => { 652 console.log(`formatPhoneNumber success, promise: data->${JSON.stringify(data)}`); 653}).catch((err: BusinessError) => { 654 console.error(`formatPhoneNumber fail, promise: err->${JSON.stringify(err)}`); 655}); 656``` 657 658## call.formatPhoneNumberToE164<sup>7+</sup> 659 660formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: AsyncCallback\<string\>\): void 661 662将电话号码格式化为E.164表示形式。使用callback异步回调。 663 664待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。 665 666**系统能力**:SystemCapability.Telephony.CallManager 667 668**参数:** 669 670| 参数名 | 类型 | 必填 | 说明 | 671| ----------- | --------------------------- | ---- | ----------------------------------------------------- | 672| phoneNumber | string | 是 | 电话号码。 | 673| countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 | 674| callback | AsyncCallback<string> | 是 | 回调函数,返回将电话号码格式化为E.164表示形式的结果。 | 675 676**错误码:** 677 678以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 679 680| 错误码ID | 错误信息 | 681| -------- | -------------------------------------------- | 682| 401 | Parameter error. | 683| 8300001 | Invalid parameter value. | 684| 8300002 | Operation failed. Cannot connect to service. | 685| 8300003 | System internal error. | 686| 8300999 | Unknown error code. | 687 688**示例:** 689 690```ts 691import { BusinessError } from '@ohos.base'; 692 693call.formatPhoneNumberToE164("138xxxxxxxx", "CN", (err: BusinessError, data: string) => { 694 if (err) { 695 console.error(`formatPhoneNumberToE164 fail, err->${JSON.stringify(err)}`); 696 } else { 697 console.log(`formatPhoneNumberToE164 success, data->${JSON.stringify(data)}`); 698 } 699}); 700``` 701 702 703## call.formatPhoneNumberToE164<sup>7+</sup> 704 705formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise\<string\> 706 707将电话号码格式化为E.164表示形式。使用Promise异步回调。 708 709待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。 710 711支持所有国家码。 712 713**系统能力**:SystemCapability.Telephony.CallManager 714 715**参数:** 716 717| 参数名 | 类型 | 必填 | 说明 | 718| ----------- | ------ | ---- | ---------------------------------------- | 719| phoneNumber | string | 是 | 电话号码。 | 720| countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 | 721 722**返回值:** 723 724| 类型 | 说明 | 725| --------------------- | ------------------------------------------------------------ | 726| Promise<string> | 以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。 | 727 728**错误码:** 729 730以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 731 732| 错误码ID | 错误信息 | 733| -------- | -------------------------------------------- | 734| 401 | Parameter error. | 735| 8300001 | Invalid parameter value. | 736| 8300002 | Operation failed. Cannot connect to service. | 737| 8300003 | System internal error. | 738| 8300999 | Unknown error code. | 739 740**示例:** 741 742```ts 743import { BusinessError } from '@ohos.base'; 744 745call.formatPhoneNumberToE164("138xxxxxxxx", "CN").then((data: string) => { 746 console.log(`formatPhoneNumberToE164 success, promise: data->${JSON.stringify(data)}`); 747}).catch((err: BusinessError) => { 748 console.error(`formatPhoneNumberToE164 fail, promise: err->${JSON.stringify(err)}`); 749}); 750``` 751 752## DialOptions 753 754拨打电话的可选参数。 755 756**系统能力**:SystemCapability.Telephony.CallManager 757 758| 名称 | 类型 | 必填 | 说明 | 759| ------------------------ | ---------------------------------- | ---- | ----------------------------------------------------------------------------------------------- | 760| extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- false:语音通话。 | 761 762## CallState 763 764通话状态码。 765 766**系统能力**:SystemCapability.Telephony.CallManager 767 768| 名称 | 值 | 说明 | 769| ------------------ | ---- | ------------------------------------------------------------ | 770| CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。 | 771| CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。 | 772| CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。 | 773| CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 | 774 775## EmergencyNumberOptions<sup>7+</sup> 776 777判断是否是紧急电话号码的可选参数。 778 779**系统能力**:SystemCapability.Telephony.CallManager 780 781| 名称 | 类型 | 必填 | 说明 | 782| ------ | ------ | ---- | ---------------------------------------------- | 783| slotId | number | 否 | 卡槽ID:<br/>- 卡槽1:`0`。<br/>- 卡槽2:`1`。 | 784 785## NumberFormatOptions<sup>7+</sup> 786 787格式化号码的可选参数。 788 789**系统能力**:SystemCapability.Telephony.CallManager 790 791| 名称 | 类型 | 必填 | 说明 | 792| ----------- | ------ | ---- | ---------------------------------------------------------- | 793| countryCode | string | 否 | 国家码,支持所有国家的国家码,如:CN(中国)。默认为:CN。 | 794