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