簡介
通話管理模塊主要管理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文章
2963瀏覽量
45898
發布評論請先 登錄
相關推薦
熱點推薦
河南移動攜手華為實現首批增強通話鴻蒙終端產品
近日,河南移動與華為終端有限公司基于新通話領域的長期聯合研究與技術深耕,正式聯合宣布:華為最新旗艦機型 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
鴻蒙開發實戰【通話管理】
評論