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

Z
zengyawen 已提交
3

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

8 9 10 11
该模块提供呼叫管理功能,包括拨打电话、跳转到拨号界面、获取通话状态、格式化电话号码等。

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

C
clevercong 已提交
12

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

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

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

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

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

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

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

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

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

**示例:**

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Z
zengyawen 已提交
99
```js
Z
zengyawen 已提交
100 101 102 103 104 105 106 107 108
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 已提交
109

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

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

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

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

**参数:**

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

**示例:**

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


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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

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

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

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

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


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

hasCall\(\): Promise<boolean\>

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

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

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

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

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

Z
zengyawen 已提交
204
```js
Z
zengyawen 已提交
205 206 207 208 209 210 211
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 已提交
212 213


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

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

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

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

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

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

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

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


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

getCallState\(\): Promise<CallState\>

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

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

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

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

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

Z
zengyawen 已提交
253
```js
Z
zengyawen 已提交
254 255 256 257 258 259 260
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 已提交
261

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

hasVoiceCapability(): boolean

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

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

**返回值:**

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Z
zengyawen 已提交
353
```js
Z
zengyawen 已提交
354 355 356 357 358 359 360
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 已提交
361

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Z
zengyawen 已提交
441
```js
Z
zengyawen 已提交
442 443 444 445 446 447 448 449 450
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 已提交
451

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

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

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

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

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

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

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

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

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


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

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

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

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

支持所有国家码。

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

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

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

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

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

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

Z
zengyawen 已提交
508
```js
Z
zengyawen 已提交
509 510 511 512 513 514 515 516 517
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 已提交
518

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

拨打电话的可选参数。
522

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

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

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

通话状态码。
532

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

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

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

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

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

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

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

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

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

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