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 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 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 = getContext(this) as Context; 256call.makeCall(context, "138xxxxxxxx").then(() => { 257 console.log(`makeCall success`); 258}).catch((err: BusinessError) => { 259 console.error(`makeCall fail, promise: err->${JSON.stringify(err)}`); 260}); 261``` 262 263## call.hasCall 264 265hasCall\(callback: AsyncCallback\<boolean\>\): void 266 267判断是否存在通话。使用callback异步回调。 268 269**系统能力**:SystemCapability.Telephony.CallManager 270 271**参数:** 272 273| 参数名 | 类型 | 必填 | 说明 | 274| -------- | ---------------------------- | ---- | ------------------------------------------------------------ | 275| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示当前存在通话,false表示当前不存在通话。 | 276 277**示例:** 278 279```ts 280import { BusinessError } from '@kit.BasicServicesKit'; 281 282call.hasCall((err: BusinessError, data: boolean) => { 283 if (err) { 284 console.error(`hasCall fail, err->${JSON.stringify(err)}`); 285 } else { 286 console.log(`hasCall success, data->${JSON.stringify(data)}`); 287 } 288}); 289``` 290 291 292## call.hasCall 293 294hasCall\(\): Promise\<boolean\> 295 296判断是否存在通话。使用Promise异步回调。 297 298**系统能力**:SystemCapability.Telephony.CallManager 299 300**返回值:** 301 302| 类型 | 说明 | 303| ---------------------- | --------------------------------------- | 304| Promise<boolean> | 以Promise形式异步返回判断是否存在通话。返回true表示当前存在通话,false表示当前不存在通话。 | 305 306**示例:** 307 308```ts 309import { BusinessError } from '@kit.BasicServicesKit'; 310 311call.hasCall().then(() => { 312 console.log(`hasCall success`); 313}).catch((err: BusinessError) => { 314 console.error(`hasCall fail, promise: err->${JSON.stringify(err)}`); 315}); 316``` 317 318## call.hasCallSync<sup>10+</sup> 319 320hasCallSync\(\): boolean 321 322判断是否存在通话。 323 324**系统能力**:SystemCapability.Telephony.CallManager 325 326**返回值:** 327 328| 类型 | 说明 | 329| ---------------------- |-------------| 330| boolean | 返回判断是否存在通话。返回true表示当前存在通话,false表示当前不存在通话。 | 331 332**示例:** 333 334```ts 335let hasCall: boolean = call.hasCallSync(); 336console.log(`hasCallSync success, has call is ` + hasCall); 337``` 338 339 340## call.getCallState 341 342getCallState\(callback: AsyncCallback\<CallState\>\): void 343 344获取当前通话状态。使用callback异步回调。 345 346**系统能力**:SystemCapability.Telephony.CallManager 347 348**参数:** 349 350| 参数名 | 类型 | 必填 | 说明 | 351| -------- | -------------------------------------------- | ---- | ------------------------------------ | 352| callback | AsyncCallback<[CallState](#callstate)> | 是 | 回调函数,异步返回获取到的通话状态。 | 353 354**示例:** 355 356```ts 357import { BusinessError } from '@kit.BasicServicesKit'; 358 359call.getCallState((err: BusinessError, data: call.CallState) => { 360 if (err) { 361 console.error(`getCallState fail, err->${JSON.stringify(err)}`); 362 } else { 363 console.log(`getCallState success, data->${JSON.stringify(data)}`); 364 } 365}); 366``` 367 368 369## call.getCallState 370 371getCallState\(\): Promise\<CallState\> 372 373获取当前通话状态。使用Promise异步回调。 374 375**系统能力**:SystemCapability.Telephony.CallManager 376 377**返回值:** 378 379| 类型 | 说明 | 380| -------------------------------------- | --------------------------------------- | 381| Promise<[CallState](#callstate)> | 以Promise形式异步返回获取到的通话状态。 | 382 383**示例:** 384 385```ts 386import { BusinessError } from '@kit.BasicServicesKit'; 387 388call.getCallState().then((data: call.CallState) => { 389 console.log(`getCallState success, promise: data->${JSON.stringify(data)}`); 390}).catch((err: BusinessError) => { 391 console.error(`getCallState fail, promise: err->${JSON.stringify(err)}`); 392}); 393``` 394 395## call.getCallStateSync<sup>10+</sup> 396 397getCallStateSync\(\): CallState 398 399获取当前通话状态。 400 401**系统能力**:SystemCapability.Telephony.CallManager 402 403**返回值:** 404 405| 类型 | 说明 | 406| ------------------------------------- |-------------| 407| [CallState](#callstate) | 返回获取到的通话状态。 | 408 409**示例:** 410 411```ts 412let callState: call.CallState = call.getCallStateSync(); 413console.log(`the call state is:` + callState); 414``` 415 416## call.hasVoiceCapability<sup>7+</sup> 417 418hasVoiceCapability\(\): boolean 419 420检查当前设备是否具备语音通话能力。 421 422**系统能力**:SystemCapability.Telephony.CallManager 423 424**返回值:** 425 426| 类型 | 说明 | 427| ------- | ------------------------------------------------------------ | 428| boolean | 返回true表示设备具备语音通话能力,返回false表示设备不具备语音通话能力。 | 429 430```ts 431let result: boolean = call.hasVoiceCapability(); 432console.log(`hasVoiceCapability: ${JSON.stringify(result)}`); 433``` 434 435## call.isEmergencyPhoneNumber<sup>7+</sup> 436 437isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback\<boolean\>\): void 438 439判断是否是紧急电话号码。使用callback异步回调。 440 441**系统能力**:SystemCapability.Telephony.CallManager 442 443**参数:** 444 445| 参数名 | 类型 | 必填 | 说明 | 446| ----------- | ---------------------------- | ---- | ------------------------------------------------------------ | 447| phoneNumber | string | 是 | 电话号码。 | 448| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 449 450**错误码:** 451 452以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 453 454| 错误码ID | 错误信息 | 455| -------- | -------------------------------------------- | 456| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 457| 8300001 | Invalid parameter value. | 458| 8300002 | Operation failed. Cannot connect to service. | 459| 8300003 | System internal error. | 460| 8300999 | Unknown error code. | 461 462**示例:** 463 464```ts 465import { BusinessError } from '@kit.BasicServicesKit'; 466 467call.isEmergencyPhoneNumber("138xxxxxxxx", (err: BusinessError, data: boolean) => { 468 if (err) { 469 console.error(`isEmergencyPhoneNumber fail, err->${JSON.stringify(err)}`); 470 } else { 471 console.log(`isEmergencyPhoneNumber success, data->${JSON.stringify(data)}`); 472 } 473}); 474``` 475 476 477## call.isEmergencyPhoneNumber<sup>7+</sup> 478 479isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback\<boolean\>\): void 480 481根据电话号码参数,判断是否是紧急电话号码。使用callback异步回调。 482 483**系统能力**:SystemCapability.Telephony.CallManager 484 485**参数:** 486 487| 参数名 | 类型 | 必填 | 说明 | 488| ----------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ | 489| phoneNumber | string | 是 | 电话号码。 | 490| options | [EmergencyNumberOptions](#emergencynumberoptions7) | 是 | 电话号码参数。 | 491| callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 492 493**错误码:** 494 495以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 496 497| 错误码ID | 错误信息 | 498| -------- | -------------------------------------------- | 499| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 500| 8300001 | Invalid parameter value. | 501| 8300002 | Operation failed. Cannot connect to service. | 502| 8300003 | System internal error. | 503| 8300999 | Unknown error code. | 504 505**示例:** 506 507```ts 508import { BusinessError } from '@kit.BasicServicesKit'; 509 510let options: call.EmergencyNumberOptions = {slotId: 1} 511call.isEmergencyPhoneNumber("112", options, (err: BusinessError, data: boolean) => { 512 if (err) { 513 console.error(`isEmergencyPhoneNumber fail, err->${JSON.stringify(err)}`); 514 } else { 515 console.log(`isEmergencyPhoneNumber success, data->${JSON.stringify(data)}`); 516 } 517}); 518``` 519 520 521## call.isEmergencyPhoneNumber<sup>7+</sup> 522 523isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): Promise\<boolean\> 524 525根据电话号码参数,判断是否是紧急电话号码。使用Promise异步回调。 526 527**系统能力**:SystemCapability.Telephony.CallManager 528 529**参数:** 530 531| 参数名 | 类型 | 必填 | 说明 | 532| ----------- | -------------------------------------------------- | ---- | -------------- | 533| phoneNumber | string | 是 | 电话号码。 | 534| options | [EmergencyNumberOptions](#emergencynumberoptions7) | 否 | 电话号码参数。 | 535 536**返回值:** 537 538| 类型 | 说明 | 539| ---------------------- | --------------------------------------------------- | 540| Promise<boolean> | 以Promise形式异步返回判断是否是紧急电话号码的结果。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 | 541 542**错误码:** 543 544以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 545 546| 错误码ID | 错误信息 | 547| -------- | -------------------------------------------- | 548| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 549| 8300001 | Invalid parameter value. | 550| 8300002 | Operation failed. Cannot connect to service. | 551| 8300003 | System internal error. | 552| 8300999 | Unknown error code. | 553 554**示例:** 555 556```ts 557import { BusinessError } from '@kit.BasicServicesKit'; 558 559let options: call.EmergencyNumberOptions = {slotId: 1} 560call.isEmergencyPhoneNumber("138xxxxxxxx", options).then((data: boolean) => { 561 console.log(`isEmergencyPhoneNumber success, promise: data->${JSON.stringify(data)}`); 562}).catch((err: BusinessError) => { 563 console.error(`isEmergencyPhoneNumber fail, promise: err->${JSON.stringify(err)}`); 564}); 565``` 566 567## call.formatPhoneNumber<sup>7+</sup> 568 569formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback\<string\>\): void 570 571格式化电话号码。使用callback异步回调。 572 573电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 574 575**系统能力**:SystemCapability.Telephony.CallManager 576 577**参数:** 578 579| 参数名 | 类型 | 必填 | 说明 | 580| ----------- | --------------------------- | ---- | ------------------------------------ | 581| phoneNumber | string | 是 | 电话号码。 | 582| callback | AsyncCallback<string> | 是 | 回调函数,返回格式化电话号码的结果。 | 583 584**错误码:** 585 586以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 587 588| 错误码ID | 错误信息 | 589| -------- | -------------------------------------------- | 590| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 591| 8300001 | Invalid parameter value. | 592| 8300002 | Operation failed. Cannot connect to service. | 593| 8300003 | System internal error. | 594| 8300999 | Unknown error code. | 595 596**示例:** 597 598```ts 599import { BusinessError } from '@kit.BasicServicesKit'; 600 601call.formatPhoneNumber("138xxxxxxxx", (err: BusinessError, data: string) => { 602 if (err) { 603 console.error(`formatPhoneNumber fail, err->${JSON.stringify(err)}`); 604 } else { 605 console.log(`formatPhoneNumber success, data->${JSON.stringify(data)}`); 606 } 607}); 608``` 609 610## call.formatPhoneNumber<sup>7+</sup> 611 612formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback\<string\>\): void 613 614格式化电话号码,可设置格式化参数。使用callback异步回调。 615 616电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 617 618**系统能力**:SystemCapability.Telephony.CallManager 619 620**参数:** 621 622| 参数名 | 类型 | 必填 | 说明 | 623| ----------- | -------------------------------------------- | ---- | ------------------------------------ | 624| phoneNumber | string | 是 | 电话号码。 | 625| options | [NumberFormatOptions](#numberformatoptions7) | 是 | 格式化参数,如国家码。 | 626| callback | AsyncCallback<string> | 是 | 回调函数,返回格式化电话号码的结果。 | 627 628**错误码:** 629 630以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 631 632| 错误码ID | 错误信息 | 633| -------- | -------------------------------------------- | 634| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 635| 8300001 | Invalid parameter value. | 636| 8300002 | Operation failed. Cannot connect to service. | 637| 8300003 | System internal error. | 638| 8300999 | Unknown error code. | 639 640**示例:** 641 642```ts 643import { BusinessError } from '@kit.BasicServicesKit'; 644 645let options: call.NumberFormatOptions = { 646 countryCode: "CN" 647} 648call.formatPhoneNumber("138xxxxxxxx", options, (err: BusinessError, data: string) => { 649 if (err) { 650 console.error(`formatPhoneNumber fail, err->${JSON.stringify(err)}`); 651 } else { 652 console.log(`formatPhoneNumber success, data->${JSON.stringify(data)}`); 653 } 654}); 655``` 656 657 658## call.formatPhoneNumber<sup>7+</sup> 659 660formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise\<string\> 661 662格式化电话号码,可设置格式化参数。使用Promise异步回调。 663 664电话号码格式化后为标准数字字串,例如:“138 xxxx xxxx”、“0755 xxxx xxxx”。 665 666**系统能力**:SystemCapability.Telephony.CallManager 667 668**参数:** 669 670| 参数名 | 类型 | 必填 | 说明 | 671| ----------- | -------------------------------------------- | ---- | ---------------------- | 672| phoneNumber | string | 是 | 电话号码。 | 673| options | [NumberFormatOptions](#numberformatoptions7) | 否 | 格式化参数,如国家码。 | 674 675**返回值:** 676 677| 类型 | 说明 | 678| --------------------- | ------------------------------------------- | 679| Promise<string> | 以Promise形式异步返回格式化电话号码的结果。 | 680 681**错误码:** 682 683以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 684 685| 错误码ID | 错误信息 | 686| -------- | -------------------------------------------- | 687| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 688| 8300001 | Invalid parameter value. | 689| 8300002 | Operation failed. Cannot connect to service. | 690| 8300003 | System internal error. | 691| 8300999 | Unknown error code. | 692 693**示例:** 694 695```ts 696import { BusinessError } from '@kit.BasicServicesKit'; 697 698let options: call.NumberFormatOptions = { 699 countryCode: "CN" 700} 701call.formatPhoneNumber("138xxxxxxxx", options).then((data: string) => { 702 console.log(`formatPhoneNumber success, promise: data->${JSON.stringify(data)}`); 703}).catch((err: BusinessError) => { 704 console.error(`formatPhoneNumber fail, promise: err->${JSON.stringify(err)}`); 705}); 706``` 707 708## call.formatPhoneNumberToE164<sup>7+</sup> 709 710formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: AsyncCallback\<string\>\): void 711 712将电话号码格式化为E.164表示形式。使用callback异步回调。 713 714待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。 715 716**系统能力**:SystemCapability.Telephony.CallManager 717 718**参数:** 719 720| 参数名 | 类型 | 必填 | 说明 | 721| ----------- | --------------------------- | ---- | ----------------------------------------------------- | 722| phoneNumber | string | 是 | 电话号码。 | 723| countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 | 724| callback | AsyncCallback<string> | 是 | 回调函数,返回将电话号码格式化为E.164表示形式的结果。 | 725 726**错误码:** 727 728以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 729 730| 错误码ID | 错误信息 | 731| -------- | -------------------------------------------- | 732| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 733| 8300001 | Invalid parameter value. | 734| 8300002 | Operation failed. Cannot connect to service. | 735| 8300003 | System internal error. | 736| 8300999 | Unknown error code. | 737 738**示例:** 739 740```ts 741import { BusinessError } from '@kit.BasicServicesKit'; 742 743call.formatPhoneNumberToE164("138xxxxxxxx", "CN", (err: BusinessError, data: string) => { 744 if (err) { 745 console.error(`formatPhoneNumberToE164 fail, err->${JSON.stringify(err)}`); 746 } else { 747 console.log(`formatPhoneNumberToE164 success, data->${JSON.stringify(data)}`); 748 } 749}); 750``` 751 752 753## call.formatPhoneNumberToE164<sup>7+</sup> 754 755formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise\<string\> 756 757将电话号码格式化为E.164表示形式。使用Promise异步回调。 758 759待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。 760 761支持所有国家码。 762 763**系统能力**:SystemCapability.Telephony.CallManager 764 765**参数:** 766 767| 参数名 | 类型 | 必填 | 说明 | 768| ----------- | ------ | ---- | ---------------------------------------- | 769| phoneNumber | string | 是 | 电话号码。 | 770| countryCode | string | 是 | 国家码,支持所有国家码,如:中国(CN)。 | 771 772**返回值:** 773 774| 类型 | 说明 | 775| --------------------- | ------------------------------------------------------------ | 776| Promise<string> | 以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。 | 777 778**错误码:** 779 780以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)和[通用错误码](../errorcode-universal.md)。 781 782| 错误码ID | 错误信息 | 783| -------- | -------------------------------------------- | 784| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types;| 785| 8300001 | Invalid parameter value. | 786| 8300002 | Operation failed. Cannot connect to service. | 787| 8300003 | System internal error. | 788| 8300999 | Unknown error code. | 789 790**示例:** 791 792```ts 793import { BusinessError } from '@kit.BasicServicesKit'; 794 795call.formatPhoneNumberToE164("138xxxxxxxx", "CN").then((data: string) => { 796 console.log(`formatPhoneNumberToE164 success, promise: data->${JSON.stringify(data)}`); 797}).catch((err: BusinessError) => { 798 console.error(`formatPhoneNumberToE164 fail, promise: err->${JSON.stringify(err)}`); 799}); 800``` 801 802## DialOptions 803 804拨打电话的可选参数。 805 806**系统能力**:SystemCapability.Telephony.CallManager 807 808| 名称 | 类型 | 必填 | 说明 | 809| ------------------------ | ---------------------------------- | ---- | ----------------------------------------------------------------------------------------------- | 810| extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- false:语音通话。 | 811 812## CallState 813 814通话状态码。 815 816**系统能力**:SystemCapability.Telephony.CallManager 817 818| 名称 | 值 | 说明 | 819| ------------------ | ---- | ------------------------------------------------------------ | 820| CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。 | 821| CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。 | 822| CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。 | 823| CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 | 824| CALL_STATE_ANSWERED<sup>11+</sup> | 3 | 表示来电已经接听。 | 825 826## EmergencyNumberOptions<sup>7+</sup> 827 828判断是否是紧急电话号码的可选参数。 829 830**系统能力**:SystemCapability.Telephony.CallManager 831 832| 名称 | 类型 | 必填 | 说明 | 833| ------ | ------ | ---- | ---------------------------------------------- | 834| slotId | number | 否 | 卡槽ID:<br/>- 卡槽1:`0`。<br/>- 卡槽2:`1`。 | 835 836## NumberFormatOptions<sup>7+</sup> 837 838格式化号码的可选参数。 839 840**系统能力**:SystemCapability.Telephony.CallManager 841 842| 名称 | 类型 | 必填 | 说明 | 843| ----------- | ------ | ---- | ---------------------------------------------------------- | 844| countryCode | string | 否 | 国家码,支持所有国家的国家码,如:CN(中国)。默认为:CN。 | 845