簡介
通話管理模塊主要管理CS(Circuit Switch,電路交換)、IMS(IP Multimedia Subsystem,IP多媒體子系統(tǒng))和OTT(over the top,OTT解決方案)三種類型的通話,負責申請通話所需要的音視頻資源,并處理多路通話時產(chǎn)生的各種沖突。通話管理主要分為UI交互、服務(wù)管理、系統(tǒng)通話管理、通話音頻管理、通話視頻管理和藍牙通話管理六大模塊,各模塊簡介如下:
- UI交互模塊:負責和通話UI交互,如UI調(diào)用接口撥號,上報來電等狀態(tài)給UI。
- 服務(wù)管理模塊:負責啟動和初始化系統(tǒng)通話管理服務(wù)。
- 系統(tǒng)通話管理模塊:負責處理通話下行操作(如撥號、接聽、掛斷等)和上行狀態(tài)(來電狀態(tài)、呼叫等待狀態(tài)等)的處理,并解決通話過程中產(chǎn)生的沖突。
- 通話音頻管理模塊:負責通話時需要的音頻資源的申請和釋放,依賴多媒體子系統(tǒng),需要調(diào)用多媒體子系統(tǒng)接口進行音頻相關(guān)的操作。
- 通話視頻管理模塊:負責通話時需要的視頻資源的申請和釋放,依賴多媒體子系統(tǒng),需要調(diào)用多媒體子系統(tǒng)接口進行視頻相關(guān)的操作。
- 藍牙通話管理模塊:負責通話時需要的藍牙資源的申請和釋放,并處理藍牙設(shè)備發(fā)起的通話操作,如接聽和掛斷等。
其主要的結(jié)構(gòu)及流程如下圖所示:
圖 1 通話管理模塊架構(gòu)圖
約束
- 開發(fā)語言:JavaScript。
- 軟件上,需要與以下子系統(tǒng)和服務(wù)配合使用:安全子系統(tǒng),多媒體子系統(tǒng),軟總線基礎(chǔ)通信子系統(tǒng)(藍牙模塊),Telephony核心服務(wù)(core_service),蜂窩通話服務(wù)(cellular_call)。
- 硬件上,需要搭載的設(shè)備支持以下硬件:揚聲器或聽筒、麥克風。
接口說明
表 1 通話管理對外提供的接口
[]()[]()接口內(nèi)容 | []()[]()接口描述 | []()[]()所需權(quán)限 |
---|---|---|
[]()[]()function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback): void; | []()[]()撥號接口,調(diào)用此接口可以進行撥號操作 | []()[]()ohos.permission.PLACE_CALL |
表 2 撥號接口參數(shù)說明
[]()[]()參數(shù) | []()[]()描述 |
---|---|
[]()[]()phoneNumber: string | []()[]()電話號碼 |
[]()[]()options: DialOptions | []()[]()擴展參數(shù)(詳見下表) |
[]()[]()callback: AsyncCallback | []()[]()異步執(zhí)行結(jié)果,true表示執(zhí)行成功,false表示執(zhí)行失敗 |
表 3 options: DialOptions參數(shù)說明
[]()[]()參數(shù) | []()[]()類型 | []()[]()描述 | []()[]()是否必填 | []()[]()默認值 |
---|---|---|---|---|
[]()[]()extras | []()[]()boolean | []()[]()false:音頻 true:視頻 | []()[]()否 | []()[]()false |
使用說明
撥打電話接口調(diào)用流程及示例代碼
構(gòu)造phoneNumber和options參數(shù);
可以通過callback或者Promise的方式調(diào)用dial接口。
該接口為異步接口,相關(guān)執(zhí)行結(jié)果會從callback中返回。
import call from "@ohos.telephony.call"; let phoneNumber = "12312312312"; // 調(diào)用接口【callback方式】 call.dial(phoneNumber, {extras: false}, (err, value) = > { if (err) { // 接口調(diào)用失敗,err非空 console.error(`failed to dial because ${err.message}`); return; } // 接口調(diào)用成功,err為空 console.log(`success to dial: ${value}`); }); // 調(diào)用接口【Promise方式】 let promise = call.dial(phoneNumber, {extras: false}); promise.then((value) = > { // 接口調(diào)用成功,此處可以實現(xiàn)成功場景分支代碼。 console.log(`success to dial: ${value}`); }).catch((err) = > { // 接口調(diào)用失敗,此處可以實現(xiàn)失敗場景分支代碼。 console.error(`failed to dial because ${err.message}`); });
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2393瀏覽量
43084
發(fā)布評論請先 登錄
相關(guān)推薦
【書籍評測活動NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應(yīng)用開發(fā)實踐
鴻蒙Flutter實戰(zhàn):14-現(xiàn)有Flutter 項目支持鴻蒙 II
鴻蒙Flutter實戰(zhàn):11-使用 Flutter SDK 3.22.0
鴻蒙Flutter實戰(zhàn):09-現(xiàn)有Flutter項目支持鴻蒙
鴻蒙Flutter實戰(zhàn):08-如何調(diào)試代碼
鴻蒙Flutter實戰(zhàn):07混合開發(fā)
鴻蒙Flutter實戰(zhàn):01-搭建開發(fā)環(huán)境
鴻蒙開發(fā)就業(yè)前景到底怎么樣?
36歲了還有必要轉(zhuǎn)行鴻蒙開發(fā)嗎?
鴻蒙開發(fā)實戰(zhàn):【Hdf Framework】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實戰(zhàn)</b>:【Hdf Framework】](https://file1.elecfans.com/web2/M00/C5/54/wKgZomX8JR6AIKmGAAC1U9QHQQQ328.jpg)
鴻蒙開發(fā)實戰(zhàn):【文件管理】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實戰(zhàn)</b>:【文件<b class='flag-5'>管理</b>】](https://file1.elecfans.com/web2/M00/C5/2E/wKgZomX66t2AGSgfAAExDiFy8dc366.png)
評論