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