js-apis-call.md 17.0 KB
Newer Older
S
shawn_he 已提交
1 2
# Call

S
shawn_he 已提交
3
>**NOTE**
S
shawn_he 已提交
4
>
Z
zengyawen 已提交
5
>The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
S
shawn_he 已提交
6 7 8 9 10 11 12 13 14 15 16 17 18 19


## Modules to Import

```
import call from '@ohos.telephony.call';
```

## call.dial<a name=call.dial-callback1></a>

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

Initiates a call. This function uses an asynchronous callback to return the execution result.

S
shawn_he 已提交
20 21 22
**Required permission**: ohos.permission.PLACE\_CALL (a system permission)

**System capability**: SystemCapability.Telephony.CallManager
S
shawn_he 已提交
23

S
shawn_he 已提交
24
**Parameters**
S
shawn_he 已提交
25

S
shawn_he 已提交
26 27 28 29 30 31 32 33 34 35 36 37
| Name| Type| Mandatory| Description|
| ----------- | ---------------------------- | ---- | ------------------------------------------------- |
| phoneNumber | string                       | Yes| Phone number.|
| callback    | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result.<br/> - **true**: success <br/> - **false**: failure|

**Example**

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


## call.dial<a name=call.dial-callback2></a>

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

Initiates a call. You can set call options as needed. This function uses an asynchronous callback to return the execution result.

S
shawn_he 已提交
46 47 48
**Required permission**: ohos.permission.PLACE\_CALL (a system permission)

**System capability**: SystemCapability.Telephony.CallManager
S
shawn_he 已提交
49

S
shawn_he 已提交
50
**Parameters**
S
shawn_he 已提交
51

S
shawn_he 已提交
52 53 54 55 56
| Name| Type| Mandatory| Description|
| ----------- | ---------------------------- | ---- | ------------------------------------------------- |
| phoneNumber | string                       | Yes| Phone number.|
| options     | DialOptions                  | Yes| Call options. For details, see [DialOptions](#DialOptions).|
| callback    | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result.<br/> - **true**: success <br/> - **false**: failure|
S
shawn_he 已提交
57

S
shawn_he 已提交
58
**Example**
S
shawn_he 已提交
59

S
shawn_he 已提交
60 61 62 63 64 65 66
```
call.dial("138xxxxxxxx", {
    extras: false
}, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
67 68 69 70 71 72 73 74


## call.dial<a name=call.dial-promise></a>

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

Initiates a call. You can set call options as needed. This function uses a promise to return the execution result.

S
shawn_he 已提交
75 76 77
**Required permission**: ohos.permission.PLACE\_CALL (a system permission)

**System capability**: SystemCapability.Telephony.CallManager
S
shawn_he 已提交
78

S
shawn_he 已提交
79
**Parameters**
S
shawn_he 已提交
80

S
shawn_he 已提交
81 82 83 84
| Name| Type| Mandatory| Description|
| ----------- | ----------- | ---- | ------------------------------------------- |
| phoneNumber | string      | Yes| Phone number.|
| options     | DialOptions | Yes| Call options. For details, see [DialOptions](#DialOptions).|
S
shawn_he 已提交
85

S
shawn_he 已提交
86
**Return value**
S
shawn_he 已提交
87

S
shawn_he 已提交
88 89 90
| Type| Description|
| ---------------------- | --------------------------------- |
| Promise&lt;boolean&gt; | Promise used to return the result.|
S
shawn_he 已提交
91

S
shawn_he 已提交
92
**Example**
S
shawn_he 已提交
93

S
shawn_he 已提交
94 95 96 97 98 99 100 101 102 103
```
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)}`);
});
```
S
shawn_he 已提交
104 105 106 107 108 109 110

## call.hasCall<a name=call.hasCall-callback></a>

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

Checks whether a call is in progress. This function uses an asynchronous callback to return the result.

S
shawn_he 已提交
111 112
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
113
**Parameters**
S
shawn_he 已提交
114

S
shawn_he 已提交
115 116 117
| Name| Type| Mandatory| Description|
| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result: <br/> - **true**: A call is in progress. <br/> - **false**: No call is in progress. |
S
shawn_he 已提交
118

S
shawn_he 已提交
119
**Example**
S
shawn_he 已提交
120

S
shawn_he 已提交
121 122 123 124 125
```
call.hasCall((err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
126 127 128 129 130 131 132 133


## call.hasCall<a name=call.hasCall-promise></a>

hasCall\(\): Promise<boolean\>

Checks whether a call is in progress. This function uses a promise to return the result.

S
shawn_he 已提交
134 135
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
136
**Return value**
S
shawn_he 已提交
137

S
shawn_he 已提交
138 139 140
| Type| Description|
| ---------------------- | --------------------------------------- |
| Promise&lt;boolean&gt; | Promise used to return the result.|
S
shawn_he 已提交
141

S
shawn_he 已提交
142
**Example**
S
shawn_he 已提交
143

S
shawn_he 已提交
144 145 146 147 148 149 150 151
```
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)}`);
});
```
S
shawn_he 已提交
152 153 154 155 156 157 158 159


## call.getCallState<a name=call.getCallState-callback></a>

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

Obtains the call status. This function uses an asynchronous callback to return the result.

S
shawn_he 已提交
160 161
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
162
**Parameters**
S
shawn_he 已提交
163

S
shawn_he 已提交
164 165 166
| Name| Type| Mandatory| Description|
| -------- | -------------------------------------------- | ---- | ------------------------------------ |
| callback | AsyncCallback&lt;[CallState](#CallState)&gt; | Yes| Callback used to return the result.|
S
shawn_he 已提交
167

S
shawn_he 已提交
168
**Example**
S
shawn_he 已提交
169

S
shawn_he 已提交
170 171 172 173 174
```
call.getCallState((err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
175 176 177 178 179 180 181 182


## call.getCallState<a name="call.getCallState-promise"></a>

getCallState\(\): Promise<CallState\>

Obtains the call status. This function uses a promise to return the result.

S
shawn_he 已提交
183 184
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
185
**Return value**
S
shawn_he 已提交
186

S
shawn_he 已提交
187 188 189
| Type| Description|
| -------------------------------------- | ----------------------------------------- |
| Promise&lt;[CallState](#CallState)&gt; | Promise used to return the result.|
S
shawn_he 已提交
190

S
shawn_he 已提交
191
**Example**
S
shawn_he 已提交
192

S
shawn_he 已提交
193 194 195 196 197 198 199 200
```
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)}`);
});
```
S
shawn_he 已提交
201 202 203 204 205

## call.isEmergencyPhoneNumber<sup>7+</sup><a name=call.isEmergencyPhoneNumber-callback1></a>

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

S
shawn_he 已提交
206
Checks whether the call number of the SIM card in the specified slot is an emergency number. This function uses an asynchronous callback to return the result.
S
shawn_he 已提交
207

S
shawn_he 已提交
208 209
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
210
**Parameters**
S
shawn_he 已提交
211

S
shawn_he 已提交
212 213 214 215
| Name| Type| Mandatory| Description|
| ----------- | ---------------------------- | ---- | ------------------------------------------------------------ |
| phoneNumber | string                       | Yes| Phone number.|
| callback    | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result.<br/> - **true**: The called number is an emergency number. <br/> - **false**: The called number is not an emergency number.|
S
shawn_he 已提交
216

S
shawn_he 已提交
217
**Example**
S
shawn_he 已提交
218

S
shawn_he 已提交
219 220 221 222 223
```
call.isEmergencyPhoneNumber("138xxxxxxxx", (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
224 225 226 227 228 229


## call.isEmergencyPhoneNumber<sup>7+</sup><a name=call.isEmergencyPhoneNumber-callback2></a>

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

S
shawn_he 已提交
230
Checks whether the call number of the SIM card in the specified slot is an emergency number. This function uses an asynchronous callback to return the result.
S
shawn_he 已提交
231

S
shawn_he 已提交
232 233
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
234
**Parameters**
S
shawn_he 已提交
235

S
shawn_he 已提交
236 237 238 239 240
| Name| Type| Mandatory| Description|
| ----------- | ---------------------------- | ---- | ------------------------------------------------------------ |
| phoneNumber | string                       | Yes| Phone number.|
| options     | EmergencyNumberOptions       | Yes| Emergency number options defined in [EmergencyNumberOptions](#EmergencyNumberOptions).|
| callback    | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result.<br/> - **true**: The called number is an emergency number. <br/> - **false**: The called number is not an emergency number.|
S
shawn_he 已提交
241

S
shawn_he 已提交
242
**Example**
S
shawn_he 已提交
243

S
shawn_he 已提交
244 245 246 247 248
```
call.isEmergencyPhoneNumber("112", {slotId: 1}, (err, value) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
249 250 251 252 253 254


## call.isEmergencyPhoneNumber<sup>7+</sup><a name=call.isEmergencyPhoneNumber-promise></a>

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

S
shawn_he 已提交
255
Checks whether the call number of the SIM card in the specified slot is an emergency number. This function uses a promise to return the result.
S
shawn_he 已提交
256

S
shawn_he 已提交
257 258
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
259
**Parameters**
S
shawn_he 已提交
260

S
shawn_he 已提交
261 262 263 264
| Name| Type| Mandatory| Description|
| ----------- | ---------------------- | ---- | ------------------------------------------------------------ |
| phoneNumber | string                 | Yes| Phone number.|
| options     | EmergencyNumberOptions | Yes| Emergency number options defined in [EmergencyNumberOptions](#EmergencyNumberOptions).|
S
shawn_he 已提交
265

S
shawn_he 已提交
266
**Return value**
S
shawn_he 已提交
267

S
shawn_he 已提交
268 269 270
| Type| Description|
| ---------------------- | --------------------------------------------------- |
| Promise&lt;boolean&gt; | Promise used to return the result.|
S
shawn_he 已提交
271

S
shawn_he 已提交
272
**Example**
S
shawn_he 已提交
273

S
shawn_he 已提交
274 275 276 277 278 279 280 281
```
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)}`);
});
```
S
shawn_he 已提交
282 283 284 285 286

## call.formatPhoneNumber<sup>7+</sup><a name=call.formatPhoneNumber-callback1></a>

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

S
shawn_he 已提交
287
Formats a phone number based on the specified ISO country code. This function uses an asynchronous callback to return the result.
S
shawn_he 已提交
288

S
shawn_he 已提交
289 290
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
291
**Parameters**
S
shawn_he 已提交
292

S
shawn_he 已提交
293 294 295 296
| Name| Type| Mandatory| Description|
| ----------- | --------------------------- | ---- | ------------------------------------ |
| phoneNumber | string                      | Yes| Phone number.|
| callback    | AsyncCallback&lt;string&gt; | Yes| Callback used to return the result.|
S
shawn_he 已提交
297

S
shawn_he 已提交
298
**Example**
S
shawn_he 已提交
299

S
shawn_he 已提交
300 301 302 303 304
```
call.formatPhoneNumber("138xxxxxxxx", (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
305 306 307 308 309 310 311 312


## call.formatPhoneNumber<sup>7+</sup><a name=call.formatPhoneNumber-callback2></a>

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

Formats a phone number based on specified formatting options. This function uses an asynchronous callback to return the result.

S
shawn_he 已提交
313 314
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
315
**Parameters**
S
shawn_he 已提交
316

S
shawn_he 已提交
317 318 319 320 321
| Name| Type| Mandatory| Description|
| ----------- | --------------------------- | ---- | ------------------------------------------------------------ |
| phoneNumber | string                      | Yes| Phone number.|
| options     | NumberFormatOptions         | Yes| Number formatting options defined in [NumberFormatOptions](#NumberFormatOptions).|
| callback    | AsyncCallback&lt;string&gt; | Yes| Callback used to return the result.|
S
shawn_he 已提交
322

S
shawn_he 已提交
323
**Example**
S
shawn_he 已提交
324

S
shawn_he 已提交
325 326 327 328 329 330 331
```
call.formatPhoneNumber("138xxxxxxxx",{
    countryCode: "CN"
}, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
332 333 334 335 336 337 338 339


## call.formatPhoneNumber<sup>7+</sup><a name=call.formatPhoneNumber-promise></a>

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

Formats a phone number based on specified formatting options. This function uses a promise to return the result.

S
shawn_he 已提交
340 341
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
342
**Parameters**
S
shawn_he 已提交
343

S
shawn_he 已提交
344 345 346 347
| Name| Type| Mandatory| Description|
| ----------- | ------------------- | ---- | ------------------------------------------------------------ |
| phoneNumber | string              | Yes| Phone number.|
| options     | NumberFormatOptions | Yes| Number formatting options defined in [NumberFormatOptions](#NumberFormatOptions).|
S
shawn_he 已提交
348

S
shawn_he 已提交
349
**Return value**
S
shawn_he 已提交
350

S
shawn_he 已提交
351 352 353
| Type| Description|
| --------------------- | ------------------------------------------- |
| Promise&lt;string&gt; | Promise used to return the result.|
S
shawn_he 已提交
354

S
shawn_he 已提交
355
**Example**
S
shawn_he 已提交
356

S
shawn_he 已提交
357 358 359 360 361 362 363 364 365 366
```
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)}`);
});
```
S
shawn_he 已提交
367 368 369 370 371 372 373 374 375 376 377

## call.formatPhoneNumberToE164<sup>7+</sup><a name=call.formatPhoneNumberToE164-callback></a>

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

Converts a phone number into the E.164 format. This function uses an asynchronous callback to return the result.

The phone number must match the specified country code. For example, for a China phone number, the country code must be **CN**. Otherwise, **null** will be returned.

All country codes are supported.

S
shawn_he 已提交
378 379
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
380
**Parameters**
S
shawn_he 已提交
381

S
shawn_he 已提交
382 383 384 385 386
| Name| Type| Mandatory| Description|
| ----------- | --------------------------- | ---- | ----------------------------------------------------- |
| phoneNumber | string                      | Yes| Phone number.|
| countryCode | string                      | Yes| Country code, for example, **CN** (China). All country codes are supported.|
| callback    | AsyncCallback&lt;string&gt; | Yes| Callback used to return the result.|
S
shawn_he 已提交
387

S
shawn_he 已提交
388
**Example**
S
shawn_he 已提交
389

S
shawn_he 已提交
390 391 392 393 394 395 396
```
call.formatPhoneNumberToE164("138xxxxxxxx",{
    countryCode: "CN"
}, (err, data) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
S
shawn_he 已提交
397 398 399 400 401 402 403 404 405 406 407 408


## call.formatPhoneNumberToE164<sup>7+</sup><a name=call.formatPhoneNumberToE164-promise></a>

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

Converts a phone number into the E.164 format. This function uses a promise to return the result.

The phone number must match the specified country code. For example, for a China phone number, the country code must be **CN**. Otherwise, **null** will be returned.

All country codes are supported.

S
shawn_he 已提交
409 410
**System capability**: SystemCapability.Telephony.CallManager

S
shawn_he 已提交
411
**Parameters**
S
shawn_he 已提交
412

S
shawn_he 已提交
413 414 415 416
| Name| Type| Mandatory| Description|
| ----------- | ------ | ---- | ---------------------------------------- |
| phoneNumber | string | Yes| Phone number.|
| countryCode | string | Yes| Country code, for example, **CN** (China). All country codes are supported.|
S
shawn_he 已提交
417

S
shawn_he 已提交
418
**Return value**
S
shawn_he 已提交
419

S
shawn_he 已提交
420 421 422
| Type| Description|
| --------------------- | ------------------------------------------------------------ |
| Promise&lt;string&gt; | Promise used to return the result.|
S
shawn_he 已提交
423

S
shawn_he 已提交
424
**Example**
S
shawn_he 已提交
425

S
shawn_he 已提交
426 427 428 429 430 431 432 433 434 435
```
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)}`);
});
```
S
shawn_he 已提交
436 437 438 439

## DialOptions<a name=DialOptions></a>

Provides an option for determining whether a call is a video call.
S
shawn_he 已提交
440 441 442 443

**System capability**: SystemCapability.Telephony.CallManager

| Name| Type| Mandatory| Description|
S
shawn_he 已提交
444 445
| ------ | ------- | ---- | ------------------------------------------------------------ |
| extras | boolean | No| Indication of a video call. The options are as follows: <br/> - **true**: video call <br/> - **false**: voice call|
S
shawn_he 已提交
446 447 448 449

## CallState<a name=CallState></a>

Enumerates call states.
S
shawn_he 已提交
450

S
shawn_he 已提交
451
| Variable| Value| Description|
S
shawn_he 已提交
452
| ------------------ | ---- | ------------------------------------------------------------ |
S
shawn_he 已提交
453 454 455 456
| CALL_STATE_UNKNOWN | -1   | The call status fails to be obtained and is unknown. <br />**System capability**: SystemCapability.Telephony.CallManager|
| CALL_STATE_IDLE    | 0    | No call is in progress. <br />**System capability**: SystemCapability.Telephony.CallManager|
| CALL_STATE_RINGING | 1    | The call is in the ringing or waiting state. <br />**System capability**: SystemCapability.Telephony.CallManager|
| CALL_STATE_OFFHOOK | 2    | At least one call is in dialing, active, or on hold, and no new incoming call is ringing or waiting. <br />**System capability**: SystemCapability.Telephony.CallManager|
S
shawn_he 已提交
457 458 459 460

## EmergencyNumberOptions<sup>7+</sup><a name=EmergencyNumberOptions></a>

Provides an option for determining whether a number is an emergency number for the SIM card in the specified slot.
S
shawn_he 已提交
461 462 463 464

**System capability**: SystemCapability.Telephony.CallManager

| Name| Type| Mandatory| Description|
S
shawn_he 已提交
465 466
| ------ | ------ | ---- | ------------------------------------------ |
| slotId | number | No| SIM card slot ID.<br/> - **0**: slot 1 <br/> - **1**: slot 2|
S
shawn_he 已提交
467 468 469 470

## NumberFormatOptions<sup>7+</sup><a name=NumberFormatOptions></a>

Provides an option for number formatting.
S
shawn_he 已提交
471 472 473 474

**System capability**: SystemCapability.Telephony.CallManager

| Name| Type| Mandatory| Description|
S
shawn_he 已提交
475 476
| ----------- | ------ | ---- | ---------------------------------------------------------- |
| countryCode | string | No| Country code, for example, **CN** (China). All country codes are supported. The default value is **CN**.|