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