• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;boolean&gt; | 是   | 回调函数,返回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&lt;boolean&gt; | 是   | 回调函数,返回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&lt;boolean&gt; | 以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&lt;void&gt; | 是   | 以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&lt;void&gt; | 以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&lt;void&gt; | 以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&lt;boolean&gt; | 是   | 回调函数。返回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&lt;boolean&gt; | 以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&lt;[CallState](#callstate)&gt; | 是   | 回调函数,异步返回获取到的通话状态。 |
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&lt;[CallState](#callstate)&gt; | 以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&lt;boolean&gt; | 是   | 回调函数。返回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&lt;boolean&gt;                       | 是   | 回调函数。返回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&lt;boolean&gt; | 以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&lt;string&gt; | 是   | 回调函数,返回格式化电话号码的结果。 |
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&lt;string&gt;                  | 是   | 回调函数,返回格式化电话号码的结果。 |
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&lt;string&gt; | 以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&lt;string&gt; | 是   | 回调函数,返回将电话号码格式化为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&lt;string&gt; | 以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