js-apis-call.md 20.4 KB
Newer Older
Z
zengyawen 已提交
1 2
# 拨打电话

Z
zengyawen 已提交
3 4 5 6
call模块提供呼叫管理功能,包括拨打电话、跳转到拨号界面、获取通话状态、格式化电话号码等。

如需订阅通话状态请使用[`observer.on('callStateChange')`](../reference/apis/js-apis-observer.md#observeroncallstatechange)

C
clevercong 已提交
7 8
>**说明:** 
>
Z
zengyawen 已提交
9
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
C
clevercong 已提交
10 11


Z
zengyawen 已提交
12
## 导入模块
C
clevercong 已提交
13

Z
zengyawen 已提交
14
```js
C
clevercong 已提交
15 16 17
import call from '@ohos.telephony.call';
```

C
clevercong 已提交
18
## call.dial
C
clevercong 已提交
19 20 21

dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void

Z
zengyawen 已提交
22
拨打电话。使用callback异步回调。
C
clevercong 已提交
23

24 25 26
**需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限

**系统能力**:SystemCapability.Telephony.CallManager
C
clevercong 已提交
27

Z
zengyawen 已提交
28 29
**参数:**

Z
zengyawen 已提交
30 31 32 33
| 参数名      | 类型                         | 必填 | 说明                                    |
| ----------- | ---------------------------- | ---- | --------------------------------------- |
| phoneNumber | string                       | 是   | 电话号码。                              |
| callback    | AsyncCallback&lt;boolean&gt; | 是   | 回调函数,返回true为成功,false为失败。 |
Z
zengyawen 已提交
34 35 36

**示例:**

Z
zengyawen 已提交
37
```js
Z
zengyawen 已提交
38 39 40 41
call.dial("138xxxxxxxx", (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
42 43


C
clevercong 已提交
44
## call.dial
C
clevercong 已提交
45 46 47

dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean\>\): void

Z
zengyawen 已提交
48
拨打电话,可设置通话参数。使用callback异步回调。
C
clevercong 已提交
49

50 51 52
**需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限

**系统能力**:SystemCapability.Telephony.CallManager
C
clevercong 已提交
53

Z
zengyawen 已提交
54
**参数:**
Z
zengyawen 已提交
55

Z
zengyawen 已提交
56 57 58 59 60
| 参数名      | 类型                         | 必填 | 说明                                    |
| ----------- | ---------------------------- | ---- | --------------------------------------- |
| phoneNumber | string                       | 是   | 电话号码。                              |
| options     | [DialOptions](#dialoptions)  | 是   | 通话参数,选择为语音通话还是视频通话。  |
| callback    | AsyncCallback&lt;boolean&gt; | 是   | 回调函数,返回true为成功,false为失败。 |
Z
zengyawen 已提交
61

Z
zengyawen 已提交
62
**示例:**
C
clevercong 已提交
63

Z
zengyawen 已提交
64
```js
Z
zengyawen 已提交
65 66 67 68 69 70
call.dial("138xxxxxxxx", {
    extras: false
}, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
71 72


C
clevercong 已提交
73
## call.dial
C
clevercong 已提交
74 75 76

dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\>

Z
zengyawen 已提交
77
拨打电话,可设置通话参数。使用Promise异步回调。
C
clevercong 已提交
78

79 80 81
**需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限

**系统能力**:SystemCapability.Telephony.CallManager
C
clevercong 已提交
82

Z
zengyawen 已提交
83
**参数:**
C
clevercong 已提交
84

Z
zengyawen 已提交
85 86 87 88
| 参数名      | 类型                        | 必填 | 说明                                   |
| ----------- | --------------------------- | ---- | -------------------------------------- |
| phoneNumber | string                      | 是   | 电话号码。                             |
| options     | [DialOptions](#dialoptions) | 是   | 通话参数,选择为语音通话还是视频通话。 |
Z
zengyawen 已提交
89

Z
zengyawen 已提交
90
**返回值:**
Z
zengyawen 已提交
91

Z
zengyawen 已提交
92 93 94
| 类型                   | 说明                                                         |
| ---------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; | 以Promise形式返回拨打电话的结果,返回true为成功,false为失败。 |
C
clevercong 已提交
95

Z
zengyawen 已提交
96
**示例:**
C
clevercong 已提交
97

Z
zengyawen 已提交
98
```js
Z
zengyawen 已提交
99 100 101 102 103 104 105 106 107
let promise = call.dial("138xxxxxxxx", {
    extras: false
});
promise.then(data => {
    console.log(`dial success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
    console.error(`dial fail, promise: err->${JSON.stringify(err)}`);
});
```
C
clevercong 已提交
108

C
clevercong 已提交
109
## call.makeCall<sup>7+</sup>
J
jyh926 已提交
110

C
clevercong 已提交
111
makeCall(phoneNumber: string, callback: AsyncCallback\<void\>): void
J
jyh926 已提交
112

Z
zengyawen 已提交
113
跳转到拨号界面,并显示待拨出的号码。使用callback异步回调。
C
clevercong 已提交
114 115

**系统能力**:SystemCapability.Applications.Contacts
J
jyh926 已提交
116 117 118

**参数:**

C
clevercong 已提交
119
| 参数名      | 类型                      | 必填 | 说明                                       |
J
jyh926 已提交
120 121 122 123 124 125
| ----------- | ------------------------- | ---- | ------------------------------------------ |
| phoneNumber | string                    | 是   | 电话号码。                                 |
| callback    | AsyncCallback&lt;void&gt; | 是   | 以callback形式异步返回跳转拨号界面的结果。 |

**示例:**

Z
zengyawen 已提交
126
```js
J
jyh926 已提交
127 128 129 130 131 132
call.makeCall("138xxxxxxxx", err => { 
    console.log(`makeCall callback: err->${JSON.stringify(err)}`); 
});
```


C
clevercong 已提交
133
## call.makeCall<sup>7+</sup>
J
jyh926 已提交
134

C
clevercong 已提交
135
makeCall(phoneNumber: string): Promise\<void\>
J
jyh926 已提交
136

Z
zengyawen 已提交
137
跳转到拨号界面,并显示待拨出的号码。使用Promise异步回调。
C
clevercong 已提交
138 139

**系统能力**:SystemCapability.Applications.Contacts
J
jyh926 已提交
140 141 142

**参数:**

C
clevercong 已提交
143
| 参数名      | 类型   | 必填 | 说明       |
J
jyh926 已提交
144 145 146 147 148 149 150 151 152 153 154
| ----------- | ------ | ---- | ---------- |
| phoneNumber | string | 是   | 电话号码。 |

**返回值:**

| 类型                | 说明                              |
| ------------------- | --------------------------------- |
| Promise&lt;void&gt; | 以Promise形式异步返回拨号的结果。 |

**示例:**

Z
zengyawen 已提交
155
```js
J
jyh926 已提交
156 157 158 159 160 161 162 163
let promise = call.makeCall("138xxxxxxxx"); 
promise.then(() => { 
    console.log(`makeCall success`); 
}).catch(err => { 
    console.error(`makeCall fail, promise: err->${JSON.stringify(err)}`); 
});
```

C
clevercong 已提交
164
## call.hasCall
C
clevercong 已提交
165 166 167

hasCall\(callback: AsyncCallback<boolean\>\): void

Z
zengyawen 已提交
168
判断是否存在通话。使用callback异步回调。
C
clevercong 已提交
169

170 171
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
172
**参数:**
Z
zengyawen 已提交
173

C
clevercong 已提交
174
| 参数名   | 类型                         | 必填 | 说明                                                         |
Z
zengyawen 已提交
175
| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
Z
zengyawen 已提交
176
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。返回true表示当前存在通话,false表示当前不存在通话。 |
C
clevercong 已提交
177

Z
zengyawen 已提交
178
**示例:**
C
clevercong 已提交
179

Z
zengyawen 已提交
180
```js
Z
zengyawen 已提交
181 182 183 184
call.hasCall((err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
185 186


C
clevercong 已提交
187
## call.hasCall
C
clevercong 已提交
188 189 190

hasCall\(\): Promise<boolean\>

Z
zengyawen 已提交
191
判断是否存在通话。使用Promise异步回调。
C
clevercong 已提交
192

193 194
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
195
**返回值:**
Z
zengyawen 已提交
196

Z
zengyawen 已提交
197 198 199
| 类型                   | 说明                                    |
| ---------------------- | --------------------------------------- |
| Promise&lt;boolean&gt; | 以Promise形式异步返回判断是否存在通话。 |
C
clevercong 已提交
200

Z
zengyawen 已提交
201
**示例:**
C
clevercong 已提交
202

Z
zengyawen 已提交
203
```js
Z
zengyawen 已提交
204 205 206 207 208 209 210
let promise = call.hasCall();
promise.then(data => {
    console.log(`hasCall success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
    console.error(`hasCall fail, promise: err->${JSON.stringify(err)}`);
});
```
C
clevercong 已提交
211 212


C
clevercong 已提交
213
## call.getCallState
C
clevercong 已提交
214 215 216

getCallState\(callback: AsyncCallback<CallState\>\): void

Z
zengyawen 已提交
217
获取当前通话状态。使用callback异步回调。
C
clevercong 已提交
218

219 220
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
221
**参数:**
Z
zengyawen 已提交
222

C
clevercong 已提交
223
| 参数名   | 类型                                         | 必填 | 说明                                 |
Z
zengyawen 已提交
224
| -------- | -------------------------------------------- | ---- | ------------------------------------ |
Z
zengyawen 已提交
225
| callback | AsyncCallback&lt;[CallState](#callstate)&gt; | 是   | 回调函数,异步返回获取到的通话状态。 |
C
clevercong 已提交
226

Z
zengyawen 已提交
227
**示例:**
C
clevercong 已提交
228

Z
zengyawen 已提交
229
```js
Z
zengyawen 已提交
230 231 232 233
call.getCallState((err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
234 235


C
clevercong 已提交
236
## call.getCallState
C
clevercong 已提交
237 238 239

getCallState\(\): Promise<CallState\>

Z
zengyawen 已提交
240
获取当前通话状态。使用Promise异步回调。
C
clevercong 已提交
241

242 243
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
244
**返回值:**
Z
zengyawen 已提交
245

Z
zengyawen 已提交
246 247 248
| 类型                                   | 说明                                    |
| -------------------------------------- | --------------------------------------- |
| Promise&lt;[CallState](#callstate)&gt; | 以Promise形式异步返回获取到的通话状态。 |
C
clevercong 已提交
249

Z
zengyawen 已提交
250
**示例:**
C
clevercong 已提交
251

Z
zengyawen 已提交
252
```js
Z
zengyawen 已提交
253 254 255 256 257 258 259
let promise = call.getCallState();
promise.then(data => {
    console.log(`getCallState success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
    console.error(`getCallState fail, promise: err->${JSON.stringify(err)}`);
});
```
C
clevercong 已提交
260

C
clevercong 已提交
261
## call.hasVoiceCapability<sup>7+</sup>
J
jyh926 已提交
262 263 264

hasVoiceCapability(): boolean

Z
zengyawen 已提交
265
检查当前设备是否具备语音通话能力。
J
jyh926 已提交
266 267 268 269 270 271 272

**系统能力**:SystemCapability.Telephony.CallManager

**返回值:**

| 类型    | 说明                                                         |
| ------- | ------------------------------------------------------------ |
Z
zengyawen 已提交
273
| boolean | 返回true表示设备具备语音通话能力,返回false表示设备不具备语音通话能力。 |
J
jyh926 已提交
274

Z
zengyawen 已提交
275
```js
J
jyh926 已提交
276 277 278 279
let result = call.hasVoiceCapability(); 
console.log(`hasVoiceCapability: ${JSON.stringify(result)}`);
```

C
clevercong 已提交
280
## call.isEmergencyPhoneNumber<sup>7+</sup>
C
clevercong 已提交
281 282 283

isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void

Z
zengyawen 已提交
284
判断是否是紧急电话号码。使用callback异步回调。
C
clevercong 已提交
285

286 287
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
288
**参数:**
Z
zengyawen 已提交
289

C
clevercong 已提交
290
| 参数名      | 类型                         | 必填 | 说明                                                         |
Z
zengyawen 已提交
291 292
| ----------- | ---------------------------- | ---- | ------------------------------------------------------------ |
| phoneNumber | string                       | 是   | 电话号码。                                                   |
Z
zengyawen 已提交
293
| callback    | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 |
C
clevercong 已提交
294

Z
zengyawen 已提交
295
**示例:**
C
clevercong 已提交
296

Z
zengyawen 已提交
297
```js
Z
zengyawen 已提交
298 299 300 301
call.isEmergencyPhoneNumber("138xxxxxxxx", (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
302 303


C
clevercong 已提交
304
## call.isEmergencyPhoneNumber<sup>7+</sup>
C
clevercong 已提交
305 306 307

isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback<boolean\>\): void

Z
zengyawen 已提交
308
根据电话号码参数,判断是否是紧急电话号码。使用callback异步回调。
C
clevercong 已提交
309

310 311
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
312
**参数:**
C
clevercong 已提交
313

Z
zengyawen 已提交
314 315 316 317 318
| 参数名      | 类型                                               | 必填 | 说明                                                         |
| ----------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ |
| phoneNumber | string                                             | 是   | 电话号码。                                                   |
| options     | [EmergencyNumberOptions](#emergencynumberoptions7) | 是   | 电话号码参数。                                               |
| callback    | AsyncCallback&lt;boolean&gt;                       | 是   | 回调函数。返回true表示是紧急电话号码,返回false表示不是紧急电话号码。 |
C
clevercong 已提交
319

Z
zengyawen 已提交
320
**示例:**
C
clevercong 已提交
321

Z
zengyawen 已提交
322
```js
Z
zengyawen 已提交
323 324 325 326
call.isEmergencyPhoneNumber("112", {slotId: 1}, (err, value) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
327 328


C
clevercong 已提交
329
## call.isEmergencyPhoneNumber<sup>7+</sup>
C
clevercong 已提交
330 331 332

isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): Promise<boolean\>

Z
zengyawen 已提交
333
根据电话号码参数,判断是否是紧急电话号码。使用Promise异步回调。
C
clevercong 已提交
334

335 336
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
337
**参数:**
C
clevercong 已提交
338

Z
zengyawen 已提交
339 340 341 342
| 参数名      | 类型                                               | 必填 | 说明           |
| ----------- | -------------------------------------------------- | ---- | -------------- |
| phoneNumber | string                                             | 是   | 电话号码。     |
| options     | [EmergencyNumberOptions](#emergencynumberoptions7) | 是   | 电话号码参数。 |
C
clevercong 已提交
343

Z
zengyawen 已提交
344
**返回值:**
C
clevercong 已提交
345

Z
zengyawen 已提交
346 347 348
| 类型                   | 说明                                                |
| ---------------------- | --------------------------------------------------- |
| Promise&lt;boolean&gt; | 以Promise形式异步返回判断是否是紧急电话号码的结果。 |
C
clevercong 已提交
349

Z
zengyawen 已提交
350
**示例:**
C
clevercong 已提交
351

Z
zengyawen 已提交
352
```js
Z
zengyawen 已提交
353 354 355 356 357 358 359
let promise = call.isEmergencyPhoneNumber("138xxxxxxxx", {slotId: 1});
promise.then(data => {
    console.log(`isEmergencyPhoneNumber success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
    console.error(`isEmergencyPhoneNumber fail, promise: err->${JSON.stringify(err)}`);
});
```
C
clevercong 已提交
360

C
clevercong 已提交
361
## call.formatPhoneNumber<sup>7+</sup>
C
clevercong 已提交
362 363 364

formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void

Z
zengyawen 已提交
365 366 367
格式化电话号码。使用callback异步回调。

电话号码格式化后为标准数字字串,例如:”138 xxxx xxxx“、”0755 xxxx xxxx“。
C
clevercong 已提交
368

369 370
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
371
**参数:**
Z
zengyawen 已提交
372

C
clevercong 已提交
373
| 参数名      | 类型                        | 必填 | 说明                                 |
Z
zengyawen 已提交
374 375 376
| ----------- | --------------------------- | ---- | ------------------------------------ |
| phoneNumber | string                      | 是   | 电话号码。                           |
| callback    | AsyncCallback&lt;string&gt; | 是   | 回调函数,返回格式化电话号码的结果。 |
C
clevercong 已提交
377

Z
zengyawen 已提交
378
**示例:**
C
clevercong 已提交
379

Z
zengyawen 已提交
380
```js
Z
zengyawen 已提交
381 382 383 384
call.formatPhoneNumber("138xxxxxxxx", (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
385

C
clevercong 已提交
386
## call.formatPhoneNumber<sup>7+</sup>
C
clevercong 已提交
387 388 389

formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback<string\>\): void

Z
zengyawen 已提交
390 391 392
格式化电话号码,可设置格式化参数。使用callback异步回调。

电话号码格式化后为标准数字字串,例如:”138 xxxx xxxx“、”0755 xxxx xxxx“。
C
clevercong 已提交
393

394 395
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
396
**参数:**
Z
zengyawen 已提交
397

Z
zengyawen 已提交
398 399 400 401 402
| 参数名      | 类型                                         | 必填 | 说明                                 |
| ----------- | -------------------------------------------- | ---- | ------------------------------------ |
| phoneNumber | string                                       | 是   | 电话号码。                           |
| options     | [NumberFormatOptions](#numberformatoptions7) | 是   | 格式化参数,如国家码。               |
| callback    | AsyncCallback&lt;string&gt;                  | 是   | 回调函数,返回格式化电话号码的结果。 |
C
clevercong 已提交
403

Z
zengyawen 已提交
404
**示例:**
C
clevercong 已提交
405

Z
zengyawen 已提交
406
```js
Z
zengyawen 已提交
407 408 409 410 411 412
call.formatPhoneNumber("138xxxxxxxx",{
    countryCode: "CN"
}, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
413 414


C
clevercong 已提交
415
## call.formatPhoneNumber<sup>7+</sup>
C
clevercong 已提交
416 417 418

formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise<string\>

Z
zengyawen 已提交
419 420 421
格式化电话号码,可设置格式化参数。使用Promise异步回调。

电话号码格式化后为标准数字字串,例如:”138 xxxx xxxx“、”0755 xxxx xxxx“。
C
clevercong 已提交
422

423 424
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
425
**参数:**
Z
zengyawen 已提交
426

Z
zengyawen 已提交
427 428 429 430
| 参数名      | 类型                                         | 必填 | 说明                   |
| ----------- | -------------------------------------------- | ---- | ---------------------- |
| phoneNumber | string                                       | 是   | 电话号码。             |
| options     | [NumberFormatOptions](#numberformatoptions7) | 是   | 格式化参数,如国家码。 |
Z
zengyawen 已提交
431

Z
zengyawen 已提交
432
**返回值:**
Z
zengyawen 已提交
433

Z
zengyawen 已提交
434 435 436
| 类型                  | 说明                                        |
| --------------------- | ------------------------------------------- |
| Promise&lt;string&gt; | 以Promise形式异步返回格式化电话号码的结果。 |
C
clevercong 已提交
437

Z
zengyawen 已提交
438
**示例:**
C
clevercong 已提交
439

Z
zengyawen 已提交
440
```js
Z
zengyawen 已提交
441 442 443 444 445 446 447 448 449
let promise = call.formatPhoneNumber("138xxxxxxxx", {
    countryCode: "CN"
});
promise.then(data => {
    console.log(`formatPhoneNumber success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
    console.error(`formatPhoneNumber fail, promise: err->${JSON.stringify(err)}`);
});
```
C
clevercong 已提交
450

C
clevercong 已提交
451
## call.formatPhoneNumberToE164<sup>7+</sup>
C
clevercong 已提交
452 453 454

formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: AsyncCallback<string\>\): void

Z
zengyawen 已提交
455
将电话号码格式化为E.164表示形式。使用callback异步回调。
C
clevercong 已提交
456

Z
zengyawen 已提交
457
待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。
C
clevercong 已提交
458

459 460
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
461
**参数:**
Z
zengyawen 已提交
462

C
clevercong 已提交
463
| 参数名      | 类型                        | 必填 | 说明                                                  |
Z
zengyawen 已提交
464 465 466 467
| ----------- | --------------------------- | ---- | ----------------------------------------------------- |
| phoneNumber | string                      | 是   | 电话号码。                                            |
| countryCode | string                      | 是   | 国家码,支持所有国家码,如:中国(CN)。              |
| callback    | AsyncCallback&lt;string&gt; | 是   | 回调函数,返回将电话号码格式化为E.164表示形式的结果。 |
C
clevercong 已提交
468

Z
zengyawen 已提交
469
**示例:**
C
clevercong 已提交
470

Z
zengyawen 已提交
471
```js
Z
zengyawen 已提交
472 473 474 475 476 477
call.formatPhoneNumberToE164("138xxxxxxxx",{
    countryCode: "CN"
}, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
C
clevercong 已提交
478 479


C
clevercong 已提交
480
## call.formatPhoneNumberToE164<sup>7+</sup>
C
clevercong 已提交
481 482 483

formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<string\>

Z
zengyawen 已提交
484
将电话号码格式化为E.164表示形式。使用Promise异步回调。
C
clevercong 已提交
485

Z
zengyawen 已提交
486
待格式化的电话号码需要与传入的国家码相匹配,如中国电话号码需要传入国家码CN,否则格式化后的电话号码为null。
C
clevercong 已提交
487 488 489

支持所有国家码。

490 491
**系统能力**:SystemCapability.Telephony.CallManager

Z
zengyawen 已提交
492
**参数:**
Z
zengyawen 已提交
493

C
clevercong 已提交
494
| 参数名      | 类型   | 必填 | 说明                                     |
Z
zengyawen 已提交
495 496 497
| ----------- | ------ | ---- | ---------------------------------------- |
| phoneNumber | string | 是   | 电话号码。                               |
| countryCode | string | 是   | 国家码,支持所有国家码,如:中国(CN)。 |
Z
zengyawen 已提交
498

Z
zengyawen 已提交
499
**返回值:**
Z
zengyawen 已提交
500

Z
zengyawen 已提交
501 502 503
| 类型                  | 说明                                                         |
| --------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt; | 以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。 |
C
clevercong 已提交
504

Z
zengyawen 已提交
505
**示例:**
C
clevercong 已提交
506

Z
zengyawen 已提交
507
```js
Z
zengyawen 已提交
508 509 510 511 512 513 514 515 516
let promise = call.formatPhoneNumberToE164("138xxxxxxxx", {
    countryCode: "CN"
});
promise.then(data => {
    console.log(`formatPhoneNumberToE164 success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
    console.error(`formatPhoneNumberToE164 fail, promise: err->${JSON.stringify(err)}`);
});
```
C
clevercong 已提交
517

C
clevercong 已提交
518
## DialOptions
C
clevercong 已提交
519 520

拨打电话的可选参数。
521

C
clevercong 已提交
522
**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
523

C
clevercong 已提交
524
| 参数名 | 类型    | 必填 | 说明                                                         |
Z
zengyawen 已提交
525
| ------ | ------- | ---- | ------------------------------------------------------------ |
526
| extras | boolean | 否   | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- false:语音通话。 |
C
clevercong 已提交
527

C
clevercong 已提交
528
## CallState
C
clevercong 已提交
529 530

通话状态码。
531

C
clevercong 已提交
532 533 534
**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

| 名称               | 值   | 说明                                                         |
Z
zengyawen 已提交
535
| ------------------ | ---- | ------------------------------------------------------------ |
C
clevercong 已提交
536 537 538 539
| CALL_STATE_UNKNOWN | -1   | 无效状态,当获取呼叫状态失败时返回。                         |
| CALL_STATE_IDLE    | 0    | 表示没有正在进行的呼叫。                                     |
| CALL_STATE_RINGING | 1    | 表示来电正在振铃或等待。                                     |
| CALL_STATE_OFFHOOK | 2    | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 |
C
clevercong 已提交
540

C
clevercong 已提交
541
## EmergencyNumberOptions<sup>7+</sup>
C
clevercong 已提交
542 543

判断是否是紧急电话号码的可选参数。
544

C
clevercong 已提交
545
**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
546

Z
zengyawen 已提交
547 548 549
| 参数名 | 类型   | 必填 | 说明                                           |
| ------ | ------ | ---- | ---------------------------------------------- |
| slotId | number | 否   | 卡槽ID:<br/>- 卡槽1为`0`<br/>- 卡槽2为`1`。 |
C
clevercong 已提交
550

C
clevercong 已提交
551
## NumberFormatOptions<sup>7+</sup>
C
clevercong 已提交
552 553

格式化号码的可选参数。
554

C
clevercong 已提交
555
**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。
556

C
clevercong 已提交
557
| 参数名      | 类型   | 必填 | 说明                                                       |
Z
zengyawen 已提交
558 559
| ----------- | ------ | ---- | ---------------------------------------------------------- |
| countryCode | string | 否   | 国家码,支持所有国家的国家码,如:中国(CN)。默认为:CN。 |