簡介
電話服務(wù)子系統(tǒng),提供了一系列的API用于獲取無線蜂窩網(wǎng)絡(luò)和SIM卡相關(guān)的一些信息。應(yīng)用可以通過調(diào)用API來獲取當(dāng)前注冊網(wǎng)絡(luò)名稱、網(wǎng)絡(luò)服務(wù)狀態(tài)、信號強(qiáng)度以及SIM卡的相關(guān)信息。
各個模塊主要作用如下:
- 核心服務(wù)模塊:主要功能是初始化RIL管理、SIM卡和搜網(wǎng)模塊。
- 通話管理模塊:主要功能是管理CS(Circuit Switch,電路交換)、IMS(IP Multimedia Subsystem,IP多媒體子系統(tǒng))和OTT(over the top,OTT解決方案)三種類型的通話,申請通話所需要的音視頻資源,處理多路通話時產(chǎn)生的各種沖突。
- 蜂窩通話模塊:主要功能是實(shí)現(xiàn)基于運(yùn)營商網(wǎng)絡(luò)的基礎(chǔ)通話。
- 蜂窩數(shù)據(jù)模塊:主要功能是實(shí)現(xiàn)基于運(yùn)營商網(wǎng)絡(luò)的蜂窩數(shù)據(jù)上網(wǎng)。
- 短彩信模塊:主要功能是短信收發(fā)和彩信編解碼。
- 狀態(tài)訂閱模塊:主要功能是提供電話服務(wù)子系統(tǒng)各種消息事件的訂閱以及取消訂閱的API。
- 數(shù)據(jù)存儲模塊:主要功能是持久化數(shù)據(jù)存儲,提供DataAbility訪問接口。
- RIL Adapter模塊: 主要功能是與modem通信接口的適配。
圖 1 子系統(tǒng)架構(gòu)圖
目錄
base/telephony/
├── core_service # 核心服務(wù)
├── call_manager # 通話管理
├── cellular_call # 蜂窩通話
├── cellular_data # 蜂窩數(shù)據(jù)
├── sms_mms # 短彩信
├── state_registry # 狀態(tài)訂閱
├── data_storage # 數(shù)據(jù)存儲
└── ril_adapter # RIL Adapter
約束
使用說明
具體請參考子模塊README,下面以獲取當(dāng)前蜂窩網(wǎng)絡(luò)信號信息和觀察蜂窩網(wǎng)絡(luò)狀態(tài)變化為例,說明電話服務(wù)子系統(tǒng)接口調(diào)用請求和狀態(tài)訂閱的使用方法。
獲取當(dāng)前蜂窩網(wǎng)絡(luò)信號信息
- 從@ohos.telephony.radio.d.ts中導(dǎo)入radio命名空間。
- 可以通過callback或者Promise的方式調(diào)用getSignalInformation(slotId: number)方法。
- 該接口為異步接口,結(jié)果會從callback中返回SignalInformation數(shù)組。
- 遍歷SignalInformation數(shù)組,獲取不同制式(signalType)的信號強(qiáng)度(signalLevel)。
// 引入包名 import radio from "@ohos.telephony.radio"; // 參數(shù)賦值 let slotId = 0; // 調(diào)用接口【callback方式】 radio.getSignalInformation(slotId, (err, value) = > { if (err) { // 接口調(diào)用失敗,err非空 console.error(`failed to getSignalInformation because ${err.message}`); return; } // 接口調(diào)用成功,err為空 for (let i = 0; i < value.length; i++) { console.log(`success to getSignalInformation: type is ${value[i].signalType}, level is ${value[i].signalLevel}`); } }); // 調(diào)用接口【Promise方式】 let promise = radio.getSignalInformation(slotId); promise.then((value) = > { // 接口調(diào)用成功,此處可以實(shí)現(xiàn)成功場景分支代碼。 for (let i = 0; i < value.length; i++) { console.log(`success to getSignalInformation: type is ${value[i].signalType}, level is ${value[i].signalLevel}`); } }).catch((err) = > { // 接口調(diào)用失敗,此處可以實(shí)現(xiàn)失敗場景分支代碼。 console.error(`failed to getSignalInformation because ${err.message}`); });
觀察蜂窩網(wǎng)絡(luò)狀態(tài)變化
添加觀察事件
- 從@ohos.telephony.observer.d.ts中導(dǎo)入observer命名空間。
- 調(diào)用on(type: 'networkStateChange')方法,傳入卡槽id(slotId)和收到事件的回調(diào)處理函數(shù)(callback),其中slotId為可選參數(shù)。
- 當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生變更時,調(diào)用者會收到回調(diào)。
// 引入包名 import observer from '@ohos.telephony.observer'; // 開啟訂閱 observer.on('networkStateChange', {slotId: 0}, (value) = > { console.log(`network state is ` + value); });
停止觀察
從@ohos.telephony.observer.d.ts中導(dǎo)入observer命名空間。
調(diào)用off(type: 'networkStateChange')方法,傳入添加觀察事件時的callback對象(可選)。
// 引入包名 import observer from '@ohos.telephony.observer'; // 關(guān)閉訂閱 observer.off('networkStateChange');
審核編輯 黃宇
-
API
+關(guān)注
關(guān)注
2文章
1513瀏覽量
62430 -
蜂窩網(wǎng)絡(luò)
+關(guān)注
關(guān)注
2文章
209瀏覽量
21753 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2393瀏覽量
43079
發(fā)布評論請先 登錄
相關(guān)推薦
《HarmonyOS第一課》煥新升級,賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā)
鴻蒙Flutter實(shí)戰(zhàn):14-現(xiàn)有Flutter 項(xiàng)目支持鴻蒙 II
鴻蒙原生開發(fā)手記:03-元服務(wù)開發(fā)全流程(開發(fā)元服務(wù),只需要看這一篇文章)
鴻蒙原生開發(fā)手記:01-元服務(wù)開發(fā)
鴻蒙Flutter實(shí)戰(zhàn):08-如何調(diào)試代碼
鴻蒙Flutter實(shí)戰(zhàn):07混合開發(fā)
鴻蒙開發(fā)實(shí)戰(zhàn):【Hdf Framework】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:【Hdf Framework】](https://file1.elecfans.com/web2/M00/C5/54/wKgZomX8JR6AIKmGAAC1U9QHQQQ328.jpg)
鴻蒙開發(fā)實(shí)戰(zhàn):【系統(tǒng)服務(wù)管理部件】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:【<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>服務(wù)</b>管理部件】](https://file1.elecfans.com/web2/M00/C5/E7/wKgaomX5QZCAfxw_AACzizMxEnU905.jpg)
鴻蒙開發(fā)實(shí)戰(zhàn):【系統(tǒng)服務(wù)框架部件】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:【<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>服務(wù)</b>框架部件】](https://file1.elecfans.com/web2/M00/C5/46/wKgZomX74I6AIXj-AABMB5XL5b8920.jpg)
鴻蒙開發(fā)實(shí)戰(zhàn):【系統(tǒng)服務(wù)管理部件】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:【<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>服務(wù)</b>管理部件】](https://file1.elecfans.com/web2/M00/C5/E7/wKgaomX5QZCAfxw_AACzizMxEnU905.jpg)
鴻蒙開發(fā)學(xué)習(xí):【驅(qū)動子系統(tǒng)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>學(xué)習(xí):【驅(qū)動<b class='flag-5'>子系統(tǒng)</b>】](https://file1.elecfans.com/web2/M00/C5/96/wKgaomX253mAUzenAAEabKQxcJs525.jpg)
鴻蒙開發(fā)實(shí)戰(zhàn):【包管理子系統(tǒng)】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>:【包管理<b class='flag-5'>子系統(tǒng)</b>】](https://file1.elecfans.com/web2/M00/C4/53/wKgZomXyo6KAN6TlAACm5srp6is788.jpg)
評論