简介
通话管理模块主要管理CS(Circuit Switch,电路交换)、IMS(IP Multimedia Subsystem,IP多媒体子系统)和OTT(over the top,OTT解决方案)三种类型的通话,负责申请通话所需要的音视频资源,并处理多路通话时产生的各种冲突。通话管理主要分为UI交互、服务管理、系统通话管理、通话音频管理、通话视频管理和蓝牙通话管理六大模块,各模块简介如下:
- UI交互模块:负责和通话UI交互,如UI调用接口拨号,上报来电等状态给UI。
- 服务管理模块:负责启动和初始化系统通话管理服务。
- 系统通话管理模块:负责处理通话下行操作(如拨号、接听、挂断等)和上行状态(来电状态、呼叫等待状态等)的处理,并解决通话过程中产生的冲突。
- 通话音频管理模块:负责通话时需要的音频资源的申请和释放,依赖多媒体子系统,需要调用多媒体子系统接口进行音频相关的操作。
- 通话视频管理模块:负责通话时需要的视频资源的申请和释放,依赖多媒体子系统,需要调用多媒体子系统接口进行视频相关的操作。
- 蓝牙通话管理模块:负责通话时需要的蓝牙资源的申请和释放,并处理蓝牙设备发起的通话操作,如接听和挂断等。
其主要的结构及流程如下图所示:
图 1 通话管理模块架构图

约束
- 开发语言:JavaScript。
- 软件上,需要与以下子系统和服务配合使用:安全子系统,多媒体子系统,软总线基础通信子系统(蓝牙模块),Telephony核心服务(core_service),蜂窝通话服务(cellular_call)。
- 硬件上,需要搭载的设备支持以下硬件:扬声器或听筒、麦克风。
接口说明
表 1 通话管理对外提供的接口
| []()[]()接口内容 | []()[]()接口描述 | []()[]()所需权限 |
|---|---|---|
| []()[]()function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback): void; | []()[]()拨号接口,调用此接口可以进行拨号操作 | []()[]()ohos.permission.PLACE_CALL |
表 2 拨号接口参数说明
| []()[]()参数 | []()[]()描述 |
|---|---|
| []()[]()phoneNumber: string | []()[]()电话号码 |
| []()[]()options: DialOptions | []()[]()扩展参数(详见下表) |
| []()[]()callback: AsyncCallback | []()[]()异步执行结果,true表示执行成功,false表示执行失败 |
表 3 options: DialOptions参数说明
| []()[]()参数 | []()[]()类型 | []()[]()描述 | []()[]()是否必填 | []()[]()默认值 |
|---|---|---|---|---|
| []()[]()extras | []()[]()boolean | []()[]()false:音频 true:视频 | []()[]()否 | []()[]()false |
使用说明
拨打电话接口调用流程及示例代码
构造phoneNumber和options参数;
可以通过callback或者Promise的方式调用dial接口。
该接口为异步接口,相关执行结果会从callback中返回。
import call from "@ohos.telephony.call"; let phoneNumber = "12312312312"; // 调用接口【callback方式】 call.dial(phoneNumber, {extras: false}, (err, value) = > { if (err) { // 接口调用失败,err非空 console.error(`failed to dial because ${err.message}`); return; } // 接口调用成功,err为空 console.log(`success to dial: ${value}`); }); // 调用接口【Promise方式】 let promise = call.dial(phoneNumber, {extras: false}); promise.then((value) = > { // 接口调用成功,此处可以实现成功场景分支代码。 console.log(`success to dial: ${value}`); }).catch((err) = > { // 接口调用失败,此处可以实现失败场景分支代码。 console.error(`failed to dial because ${err.message}`); });审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
鸿蒙
+关注
关注
60文章
3018浏览量
46172
发布评论请先 登录
相关推荐
热点推荐
河南移动携手华为实现首批增强通话鸿蒙终端产品
近日,河南移动与华为终端有限公司基于新通话领域的长期联合研究与技术深耕,正式联合宣布:华为最新旗舰机型 Mate 80系列、Mate X7系列共六款机型已全面支持增强通话功能,成为首批在鸿蒙单框架
M4-R1 开源鸿蒙(OpenHarmory)开发板丨串口调试助手实战案例
支持与高集成度设计,成为开发者体验与学习鸿蒙系统的理想平台。无论是智慧家居、教学实验,还是设备通信,M4-R1都能提供稳定可靠的开发环境。本次分享的实战案例——串口
【项目实战】基于Hi3861的鸿蒙智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码
,同时整理了详细开发文档资料,新手跟着也能慢慢搭起来,提升实战能力。项目硬件清单鸿蒙智能小车项目使用的是红框部分鸿蒙智能小车豪华套餐硬件以及语音控制项目模块。项目功能
鸿蒙5开发宝藏案例分享---一多开发实例(音乐)
各位开发者小伙伴们好呀!今天咱们来点硬核干货!最近在鸿蒙文档中心挖到一座“金矿”——官方竟然暗藏了100+实战案例,从分布式架构到交互动效优化应有尽有!这些案例不仅藏着华为工程师的私房技巧,还直接
鸿蒙5开发宝藏案例分享---瀑布流优化实战分享
鸿蒙瀑布流性能优化实战:告别卡顿的宝藏指南!
大家好!最近在鸿蒙文档里挖到一个 性能优化宝藏库 ,原来官方早就准备好了各种场景的最佳实践!今天重点分享「瀑布流加载慢丢帧」的解决方案,附完整代码解析
发表于 06-12 17:41
鸿蒙5开发宝藏案例分享---性能体验设计
;性能优化\"关键词!
**如果大家在实战中遇到卡顿难题,欢迎在评论区交流~ 也欢迎关注我,后续会持续分享鸿蒙开发实战技巧! **✨
希望这篇接地气的总结能帮你避开性能深坑!如果觉得有
发表于 06-12 16:45
鸿蒙5开发宝藏案例分享---性能优化案例解析
鸿蒙性能优化宝藏指南:实战工具与代码案例解析
大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实用工具和案例,但很多小伙伴可能没发现!这篇就
发表于 06-12 16:36
鸿蒙5开发宝藏案例分享---埋点开发实战指南
鸿蒙埋点开发宝藏指南:官方案例实战解析,轻松搞定数据追踪!
大家好呀!我是HarmonyOS开发路上的探索者。最近在折腾应用埋点时,意外发现了鸿蒙
发表于 06-12 16:30
鸿蒙5开发宝藏案例分享---切面编程实战揭秘
鸿蒙切面编程(AOP)实战指南:隐藏的宝藏功能大揭秘!
大家好!今天在翻鸿蒙开发者文档时,意外发现了官方埋藏的「切面编程」宝藏案例!实际开发
发表于 06-12 16:21
鸿蒙5开发宝藏案例分享---应用并发设计
?** 鸿蒙并发编程实战指南:解锁ArkTS多线程黑科技**
嘿,开发者朋友们! 今天给大家扒一扒鸿蒙官方文档里藏着的并发编程宝藏—— 100+实战
发表于 06-12 16:19
鸿蒙5开发宝藏案例分享---应用架构实战技巧
大家好! 今天咱们聊聊鸿蒙开发中那些“官方文档提了但实际开发难找”的架构设计技巧。结合官方文档,我会用 真实代码案例+通俗讲解 ,帮你把分层架构和线程通信落地到项目里,告别“理论会了,代码不会
发表于 06-12 16:14
鸿蒙5开发宝藏案例分享---一多开发实例(游戏)
?【开发者必看】鸿蒙隐藏宝箱大公开!这些实战案例让你的开发效率翻倍!
哈喽各位开发者小伙伴!今天要和大家分享一个让我拍大腿的发现——原来
发表于 06-03 18:22
鸿蒙5开发宝藏案例分享---一多开发实例(地图导航)
? 鸿蒙开发隐藏宝藏大公开!手把手教你玩转\"一多\"地图导航案例 ?
大家好呀!我是你们的老朋友,今天要给大家扒一扒鸿蒙官方文档里那些\"藏得深\"的实战
发表于 06-03 16:17
鸿蒙5开发宝藏案例分享---一多开发实例(即时通讯)
✨鸿蒙\"一多\"开发宝藏指南:原来官方案例还能这么玩!✨
大家好呀!我是刚在鸿蒙开发路上踩完坑的某不知名码农,今天要给大家分享一个重大发现——原来HarmonyOS官方早就给我
发表于 06-03 16:01
鸿蒙开发实战【通话管理】
评论