# 拨打电话 - [导入模块](#section111401036143) - [call.dial](#section1961259194312) - [call.dial](#section387281814438) - [call.dial](#section37173354913) - [call.hasCall](#section19558123217015) - [call.hasCall](#section12874319303) - [call.getCallState](#section5882223124910) - [call.getCallState](#section198597561794) - [call.isEmergencyPhoneNumber7+](#section8560112174319) - [call.isEmergencyPhoneNumber7+](#section9565131204319) - [call.isEmergencyPhoneNumber7+](#section5569131234312) - [call.formatPhoneNumber7+](#section1532018310579) - [call.formatPhoneNumber7+](#section1832553165720) - [call.formatPhoneNumber7+](#section1933033195716) - [call.formatPhoneNumberToE1647+](#section10285180112418) - [call.formatPhoneNumberToE1647+](#section142931509247) - [DialOptions](#section12262183471518) - [CallState](#section345181318300) - [EmergencyNumberOptions7+](#section03689893518) - [NumberFormatOptions7+](#section23348305716) >**说明:** > >标记7+的表示从API Version 7开始支持,未标记的表示从API Version 6开始支持。 ## 导入模块 ``` import call from '@ohos.telephony.call'; ``` ## call.dial dial\(phoneNumber: string, callback: AsyncCallback\): void 拨打电话,使用callback方式作为异步方法。 需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

callback

AsyncCallback<boolean>

回调函数:

  • true:成功。
  • false:失败。
- 示例 ``` call.dial("138xxxxxxxx", (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.dial dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback\): void 拨打电话,可设置通话参数,使用callback方式作为异步方法。 需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

options

DialOptions

通话参数,参考DialOptions

callback

AsyncCallback<boolean>

回调函数:

  • true:成功。
  • false:失败。
- 示例 ``` call.dial("138xxxxxxxx", { extras: false }, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.dial dial\(phoneNumber: string, options?: DialOptions\): Promise 拨打电话,可设置通话参数,使用promise方式作为异步方法。 需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

options

DialOptions

通话参数,参考DialOptions

- 返回值

类型

说明

Promise<boolean>

以Promise形式返回拨打电话的结果。

- 示例 ``` 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)}`); }); ``` ## call.hasCall hasCall\(callback: AsyncCallback\): void 判断是否存在通话,使用callback方式作为异步方法。 - 参数

参数名

类型

必填

说明

callback

AsyncCallback<boolean>

回调函数:

  • true:当前存在通话。
  • false:当前不存在通话。
- 示例 ``` call.hasCall((err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.hasCall hasCall\(\): Promise 判断是否存在通话,使用Promise方式作为异步方法。 - 返回值

类型

说明

Promise<boolean>

以Promise形式异步返回判断是否存在通话。

- 示例 ``` 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)}`); }); ``` ## call.getCallState getCallState\(callback: AsyncCallback\): void 获取通话状态,使用callback方式作为异步方法。 - 参数

参数名

类型

必填

说明

callback

AsyncCallback<CallState>

回调函数,异步返回获取到的通话状态。

- 示例 ``` call.getCallState((err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.getCallState getCallState\(\): Promise 获取通话状态,使用Promise方式作为异步方法。 - 返回值

类型

说明

Promise<CallState>

以Promise形式异步返回获取通话状态的结果。

- 示例 ``` 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)}`); }); ``` ## call.isEmergencyPhoneNumber7+ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback\): void 判断是否是紧急电话号码,使用callback方式作为异步方法。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

callback

AsyncCallback<boolean>

回调函数,返回判断是否是紧急电话号码的结果:

  • true:是紧急电话号码。
  • false:不是紧急电话号码。
- 示例 ``` call.isEmergencyPhoneNumber("138xxxxxxxx", (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.isEmergencyPhoneNumber7+ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback\): void 判断是否是紧急电话号码,使用callback方式作为异步方法。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

options

EmergencyNumberOptions

手机参数,参考EmergencyNumberOptions

callback

AsyncCallback<boolean>

回调函数,返回判断是否是紧急电话号码的结果:

  • true:是紧急电话号码。
  • false:不是紧急电话号码。
- 示例 ``` call.isEmergencyPhoneNumber("112", {slotId: 1}, (err, value) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.isEmergencyPhoneNumber7+ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): Promise 判断是否是紧急电话号码,使用promise方式作为异步方法。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

options

EmergencyNumberOptions

手机参数,参考EmergencyNumberOptions

- 返回值

类型

说明

Promise<boolean>

以Promise形式异步返回判断是否是紧急电话号码的结果。

- 示例 ``` 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)}`); }); ``` ## call.formatPhoneNumber7+ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback\): void 格式化电话号码,使用callback方式作为异步方法。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

callback

AsyncCallback<string>

回调函数,返回格式化电话号码的结果。

- 示例 ``` call.formatPhoneNumber("138xxxxxxxx", (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.formatPhoneNumber7+ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback\): void 格式化电话号码,可设置格式化参数,使用callback方式作为异步方法。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

options

NumberFormatOptions

格式化参数,参考NumberFormatOptions

callback

AsyncCallback<string>

回调函数,返回格式化电话号码的结果。

- 示例 ``` call.formatPhoneNumber("138xxxxxxxx",{ countryCode: "CN" }, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.formatPhoneNumber7+ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise 格式化电话号码,可设置格式化参数,使用promise方式作为异步方法。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

options

NumberFormatOptions

格式化参数,参考NumberFormatOptions

- 返回值

类型

说明

Promise<string>

以Promise形式异步返回格式化电话号码的结果。

- 示例 ``` 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)}`); }); ``` ## call.formatPhoneNumberToE1647+ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: AsyncCallback\): void 将电话号码格式化为E.164表示形式,使用callback方式作为异步方法。 需要格式化的电话号码需要与传入国家码相匹配,如中国手机号需要传入国家码CN,否则格式化后的手机号为null。 支持所有国家码。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

countryCode

string

国家码,支持所有国家码,如:中国(CN)。

callback

AsyncCallback<string>

回调函数,返回将电话号码格式化为E.164表示形式的结果。

- 示例 ``` call.formatPhoneNumberToE164("138xxxxxxxx",{ countryCode: "CN" }, (err, data) => { console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); }); ``` ## call.formatPhoneNumberToE1647+ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise 将电话号码格式化为E.164表示形式,使用promise方式作为异步方法。 需要格式化的手机号码需要与传入国家码相匹配,如中国手机号需要传入国家码CN,否则格式化后的手机号为null。 支持所有国家码。 - 参数

参数名

类型

必填

说明

phoneNumber

string

电话号码。

countryCode

string

国家码,如:中国(CN)。

- 返回值

类型

说明

Promise<string>

以Promise形式异步返回将电话号码格式化为E.164表示形式的结果。

- 示例 ``` 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)}`); }); ``` ## DialOptions 拨打电话的可选参数。

参数名

类型

必填

说明

extras

boolean

根据extras的值判断是否为视频通话,默认为语音通话。

  • true:视频通话。
  • fasle:语音通话。
## CallState 通话状态码。

变量

说明

CALL_STATE_UNKNOWN

-1

无效状态,当获取呼叫状态失败时返回。

CALL_STATE_IDLE

0

表示没有正在进行的呼叫。

CALL_STATE_RINGING

1

表示来电正在振铃或等待。

CALL_STATE_OFFHOOK

2

表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。

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

参数名

类型

必填

说明

slotId

number

卡槽ID:

  • 0:卡槽1。
  • 1:卡槽2。
## NumberFormatOptions7+ 格式化号码的可选参数。

参数名

类型

必填

说明

countryCode

string

国家码,支持所有国家的国家码,如:中国(CN),默认为:CN。