拨打电话

About 7 min

拨打电话

说明:

  • 从 API Version 6 开始支持。

  • 标记7+的接口从API Version 7开始支持。

导入模块

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

call.dial

dial(phoneNumber: string, callback: AsyncCallback<boolean>): 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)}`);
    });
    
    1
    2
    3

call.dial

dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean>): 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)}`);
    });
    
    1
    2
    3
    4
    5

call.dial

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

拨打电话,可设置通话参数,使用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)}`);
    });
    
    1
    2
    3
    4
    5
    6
    7
    8

call.hasCall

hasCall(callback: AsyncCallback<boolean>): void

判断是否存在通话,使用callback方式作为异步方法。

  • 参数

    参数 类型 必填 说明
    callback AsyncCallback<boolean> 回调函数:
    - true:当前存在通话。
    - false:当前不存在通话。
  • 示例

    call.hasCall((err, data) => {
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    
    1
    2
    3

call.hasCall

hasCall(): Promise<boolean>

判断是否存在通话,使用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)}`);
    });
    
    1
    2
    3
    4
    5
    6

call.getCallState

getCallState(callback: AsyncCallback<CallState>): void

获取通话状态,使用callback方式作为异步方法。

  • 参数

    参数 类型 必填 说明
    callback AsyncCallback<CallState> 回调函数:异步返回获取到的通话状态。
  • 示例

    call.getCallState((err, data) => {
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    
    1
    2
    3

call.getCallState

getCallState(): Promise<CallState>

获取通话状态,使用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)}`);
    });
    
    1
    2
    3
    4
    5
    6

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, callback: AsyncCallback<boolean>): 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)}`);
    });
    
    1
    2
    3

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback<boolean>): 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)}`);
    });
    
    1
    2
    3

call.isEmergencyPhoneNumber7+

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

判断是否是紧急电话号码,使用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)}`);
    });
    
    1
    2
    3
    4
    5
    6

call.formatPhoneNumber7+

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

格式化电话号码,使用callback方式作为异步方法。

  • 参数

    参数 类型 必填 说明
    phoneNumber string 电话号码。
    callback AsyncCallback<string> 回调函数,返回格式化电话号码的结果。
  • 示例

    call.formatPhoneNumber("138xxxxxxxx", (err, data) => {
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    
    1
    2
    3

call.formatPhoneNumber7+

formatPhoneNumber(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback<string>): 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)}`);
    });
    
    1
    2
    3
    4
    5

call.formatPhoneNumber7+

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

格式化电话号码,可设置格式化参数,使用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)}`);
    });
    
    1
    2
    3
    4
    5
    6
    7
    8

call.formatPhoneNumberToE1647+

formatPhoneNumberToE164(phoneNumber: string, countryCode: string, callback: AsyncCallback<string>): 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)}`);
    });
    
    1
    2
    3
    4
    5

call.formatPhoneNumberToE1647+

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

将电话号码格式化为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)}`);
    });
    
    1
    2
    3
    4
    5
    6
    7
    8

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。