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