0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发电话服务:【@ohos.telephony.call (拨打电话)】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-15 09:13 次阅读

拨打电话

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

如需订阅通话状态请使用[observer.on('callStateChange')]

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]点击或者复制转到。
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

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

call.dial

dial(phoneNumber: string, callback: AsyncCallback): void

拨打电话。使用callback异步回调。

需要权限 :ohos.permission.PLACE_CALL,该权限为系统权限

系统能力 :SystemCapability.Telephony.CallManager

参数

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback回调函数,返回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,该权限为系统权限

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[DialOptions]通话参数,选择为语音通话还是视频通话。
callbackAsyncCallback回调函数,返回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,该权限为系统权限

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[DialOptions]通话参数,选择为语音通话还是视频通话。

返回值:

类型说明
Promise以Promise形式返回拨打电话的结果,返回true为成功,false为失败。

示例:

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.makeCall7+

makeCall(phoneNumber: string, callback: AsyncCallback): void

跳转到拨号界面,并显示待拨出的号码。使用callback异步回调。

系统能力 :SystemCapability.Applications.Contacts

参数:

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback以callback形式异步返回跳转拨号界面的结果。

示例:

call.makeCall("138xxxxxxxx", err = > { 
    console.log(`makeCall callback: err- >${JSON.stringify(err)}`); 
});

call.makeCall7+

makeCall(phoneNumber: string): Promise

跳转到拨号界面,并显示待拨出的号码。使用Promise异步回调。

系统能力 :SystemCapability.Applications.Contacts

参数:

参数名类型必填说明
phoneNumberstring电话号码。

返回值:

类型说明
Promise以Promise形式异步返回拨号的结果。

示例:

let promise = call.makeCall("138xxxxxxxx"); 
promise.then(() = > { 
    console.log(`makeCall success`); 
}).catch(err = > { 
    console.error(`makeCall fail, promise: err- >${JSON.stringify(err)}`); 
});

call.hasCall

hasCall(callback: AsyncCallback): void

判断是否存在通话。使用callback异步回调。

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
callbackAsyncCallback回调函数。返回true表示当前存在通话,false表示当前不存在通话。

示例:

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

call.hasCall

hasCall(): Promise

判断是否存在通话。使用Promise异步回调。

系统能力 :SystemCapability.Telephony.CallManager

返回值:

类型说明
Promise以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异步回调。

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
callbackAsyncCallback<[CallState]>回调函数,异步返回获取到的通话状态。

示例:

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

call.getCallState

getCallState(): Promise

获取当前通话状态。使用Promise异步回调。

系统能力 :SystemCapability.Telephony.CallManager

返回值:

类型说明
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.hasVoiceCapability7+

hasVoiceCapability(): boolean

检查当前设备是否具备语音通话能力。

系统能力 :SystemCapability.Telephony.CallManager

返回值:

类型说明
boolean返回true表示设备具备语音通话能力,返回false表示设备不具备语音通话能力。
let result = call.hasVoiceCapability(); 
console.log(`hasVoiceCapability: ${JSON.stringify(result)}`);

call.isEmergencyPhoneNumber7+

isEmergencyPhoneNumber(phoneNumber: string, callback: AsyncCallback): void

判断是否是紧急电话号码。使用callback异步回调。

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback回调函数。返回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异步回调。

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[EmergencyNumberOptions]电话号码参数。
callbackAsyncCallback回调函数。返回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异步回调。

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[EmergencyNumberOptions]电话号码参数。

返回值:

类型说明
Promise以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异步回调。

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

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
callbackAsyncCallback回调函数,返回格式化电话号码的结果。

示例:

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异步回调。

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

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[NumberFormatOptions]格式化参数,如国家码。
callbackAsyncCallback回调函数,返回格式化电话号码的结果。

示例:

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异步回调。

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

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
options[NumberFormatOptions]格式化参数,如国家码。

返回值:

类型说明
Promise以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。

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
countryCodestring国家码,支持所有国家码,如:中国(CN)。
callbackAsyncCallback回调函数,返回将电话号码格式化为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。

支持所有国家码。

系统能力 :SystemCapability.Telephony.CallManager

参数:

参数名类型必填说明
phoneNumberstring电话号码。
countryCodestring国家码,支持所有国家码,如:中国(CN)。

返回值:

类型说明
Promise以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

拨打电话的可选参数。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

参数名类型必填说明
extrasboolean根据extras的值判断是否为视频通话,默认为语音通话。 - true:视频通话。 - false:语音通话。

CallState

通话状态码。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

名称说明
CALL_STATE_UNKNOWN-1无效状态,当获取呼叫状态失败时返回。
CALL_STATE_IDLE0表示没有正在进行的呼叫。
CALL_STATE_RINGING1表示来电正在振铃或等待。
CALL_STATE_OFFHOOK2表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。

EmergencyNumberOptions7+

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

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

参数名类型必填说明
slotIdnumber卡槽ID: - 卡槽1为0。 - 卡槽2为1HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

新文档.png

NumberFormatOptions7+

格式化号码的可选参数。

系统能力 :以下各项对应的系统能力均为SystemCapability.Telephony.CallManager。

参数名类型必填说明
countryCodestring国家码,支持所有国家的国家码,如:中国(CN)。默认为:CN。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1510

    浏览量

    62369
  • 电话
    +关注

    关注

    0

    文章

    135

    浏览量

    25876
  • 鸿蒙
    +关注

    关注

    57

    文章

    2392

    浏览量

    43031
收藏 人收藏

    评论

    相关推荐

    鸿蒙实战应用开发:【拨打电话】功能

    概述 本示例通过输入电话,进行电话拨打,及电话相关信息的显示。 样例展示 涉及OpenHarmony技术特性 网络通信 基础信息 拨打电话
    发表于 03-04 20:22

    鸿蒙原生应用元服务开发-WEB跨应用跳转

    web_webview from \'@ohos.web.webview\'; import call from \'@ohos.telephony.call\'; @Entry
    发表于 05-27 15:06

    基于鸿蒙Next模拟电话通讯录及电话拨打

    一、介绍 基于鸿蒙Next模拟电话通讯录,可以拨打电话,删除电话等二、场景需求 客户服务、业务咨询、回访处理、沟通交流、信息交流等等 三、业
    发表于 08-27 15:24

    鸿蒙可以拨打电话了!#鸿蒙

    嵌入式电话鸿蒙HarmonyOS行业芯事经验分享
    连志安
    发布于 :2022年04月03日 17:00:07

    打电话自动开启网络的软件

    大家好朋友们有谁知道能拨打电话的时候手机自动开启网络的软件啊谢谢大家十万火急的要
    发表于 04-02 06:18

    急求 电话按键拨号拨打电话程序

    急求 电话按键拨号拨打电话程序
    发表于 04-02 09:04

    通过STM32控制GSM拨打电话不正常

    我这个东西是使用STM32去控制GSM模块(TC35I模块)拨打电话,通过串口1去控制GSM模块实现相关的功能,基本类似于提供的例程里的实验3 串口实验。现在的情况是,使用上位机直接去控制GSM模块
    发表于 02-14 04:44

    SIM800C拨打电话回音严重

    1.用SIM800C拨打电话有回音,硬件连接方面是一个喇叭跟麦克距离5cm左右;拨打手机后,在手机里说一句手机听筒也会重复一句。2.配置一下指令也有回音,没改善AT+CHF=1,2AT+CHFA=2AT+ECHO=1,x,x,x,x,1 x表示不会配置,写的最大值求大神指
    发表于 06-04 04:36

    #DAYU200# OpenHarmony跳转拨号界面

    ohos.permission.PLACE_CALL,建议应用使用makeCall(),跳转到拨号界面,并显示拨号的号码,当开发者调用makeCall接口时,设备会自动跳转到拨号界面。和正常拨打电话一样,用户可以选择卡1或
    发表于 09-21 16:04

    HarmonyOS应用API-拨打电话

    1.import需要的模块。// import需要的模块import call from '@ohos.telephony.call';import observer from
    发表于 10-14 09:45

    在DAYU200上实现OpenHarmony跳转拨号界面

    网络信号信息开发指导。直接拨打电话需要提供系统权限ohos.permission.PLACE_CALL,在这里建议应用使用makeCall(),跳转到拨号界面,并显示拨号的号码,当开发
    发表于 10-19 11:39

    HarmonyOS应用开发JSAPI-js拨打电话call

    ="capsule" class="btn" onclick="call">拨打电话</button>
    发表于 11-21 10:52

    使用Android 12拨打电话是否需要额外购买许可证?

    我正在 iMX8QM EVK 板上进行开发。我在主板上运行 Android 12。使用 Android 12 拨打电话是否需要额外购买许可证?
    发表于 04-10 12:07

    iphone常见软件故障之-外地出差无法拨打电话

    iphone常见软件故障之-外地出差无法拨打电话 这个问题一般很少见,不过有苹果用户反映我们就稍微提一下,如果你遇到这样的问
    发表于 02-01 10:32 2971次阅读

    如何使用GPRS模块接打电话KINGCOMTEKG系列电话应用指导

    本文档的主要内容详细介绍的是如何使用GPRS模块接打电话KINGCOMTEKG系列电话应用指导。
    发表于 12-03 17:06 9次下载
    如何使用GPRS模块接<b class='flag-5'>打电话</b>KINGCOMTEKG系列<b class='flag-5'>电话</b>应用指导