簡介
電話服務子系統,提供了一系列的API用于獲取無線蜂窩網絡和SIM卡相關的一些信息。應用可以通過調用API來獲取當前注冊網絡名稱、網絡服務狀態、信號強度以及SIM卡的相關信息。
各個模塊主要作用如下:
- 核心服務模塊:主要功能是初始化RIL管理、SIM卡和搜網模塊。
- 通話管理模塊:主要功能是管理CS(Circuit Switch,電路交換)、IMS(IP Multimedia Subsystem,IP多媒體子系統)和OTT(over the top,OTT解決方案)三種類型的通話,申請通話所需要的音視頻資源,處理多路通話時產生的各種沖突。
- 蜂窩通話模塊:主要功能是實現基于運營商網絡的基礎通話。
- 蜂窩數據模塊:主要功能是實現基于運營商網絡的蜂窩數據上網。
- 短彩信模塊:主要功能是短信收發和彩信編解碼。
- 狀態訂閱模塊:主要功能是提供電話服務子系統各種消息事件的訂閱以及取消訂閱的API。
- 數據存儲模塊:主要功能是持久化數據存儲,提供DataAbility訪問接口。
- RIL Adapter模塊: 主要功能是與modem通信接口的適配。
圖 1 子系統架構圖

目錄
base/telephony/
├── core_service # 核心服務
├── call_manager # 通話管理
├── cellular_call # 蜂窩通話
├── cellular_data # 蜂窩數據
├── sms_mms # 短彩信
├── state_registry # 狀態訂閱
├── data_storage # 數據存儲
└── ril_adapter # RIL Adapter
約束
- 目前開源的范圍包括蜂窩通話(僅支持CS通話)、短信、數據上網,支持雙SIM卡框架。
- 南向HDI依賴芯片廠商適配。
使用說明
具體請參考子模塊README,下面以獲取當前蜂窩網絡信號信息和觀察蜂窩網絡狀態變化為例,說明電話服務子系統接口調用請求和狀態訂閱的使用方法。
獲取當前蜂窩網絡信號信息
- 從@ohos.telephony.radio.d.ts中導入radio命名空間。
- 可以通過callback或者Promise的方式調用getSignalInformation(slotId: number)方法。
- 該接口為異步接口,結果會從callback中返回SignalInformation數組。
- 遍歷SignalInformation數組,獲取不同制式(signalType)的信號強度(signalLevel)。
// 引入包名 import radio from "@ohos.telephony.radio"; // 參數賦值 let slotId = 0; // 調用接口【callback方式】 radio.getSignalInformation(slotId, (err, value) = > { if (err) { // 接口調用失敗,err非空 console.error(`failed to getSignalInformation because ${err.message}`); return; } // 接口調用成功,err為空 for (let i = 0; i < value.length; i++) { console.log(`success to getSignalInformation: type is ${value[i].signalType}, level is ${value[i].signalLevel}`); } }); // 調用接口【Promise方式】 let promise = radio.getSignalInformation(slotId); promise.then((value) = > { // 接口調用成功,此處可以實現成功場景分支代碼。 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) = > { // 接口調用失敗,此處可以實現失敗場景分支代碼。 console.error(`failed to getSignalInformation because ${err.message}`); });
觀察蜂窩網絡狀態變化
添加觀察事件
- 從@ohos.telephony.observer.d.ts中導入observer命名空間。
- 調用on(type: 'networkStateChange')方法,傳入卡槽id(slotId)和收到事件的回調處理函數(callback),其中slotId為可選參數。
- 當網絡狀態發生變更時,調用者會收到回調。
// 引入包名 import observer from '@ohos.telephony.observer'; // 開啟訂閱 observer.on('networkStateChange', {slotId: 0}, (value) = > { console.log(`network state is ` + value); });
停止觀察
從@ohos.telephony.observer.d.ts中導入observer命名空間。
調用off(type: 'networkStateChange')方法,傳入添加觀察事件時的callback對象(可選)。
// 引入包名 import observer from '@ohos.telephony.observer'; // 關閉訂閱 observer.off('networkStateChange');審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
API
+關注
關注
2文章
2372瀏覽量
66788 -
蜂窩網絡
+關注
關注
2文章
214瀏覽量
23272 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45905
發布評論請先 登錄
相關推薦
熱點推薦
M4-R1 開源鴻蒙(OpenHarmory)開發板丨串口調試助手實戰案例
支持與高集成度設計,成為開發者體驗與學習鴻蒙系統的理想平臺。無論是智慧家居、教學實驗,還是設備通信,M4-R1都能提供穩定可靠的開發環境。本次分享的
鴻蒙5開發寶藏案例分享---一多開發實例(音樂)
關聯實際開發中的高頻痛點,比如內存泄漏、跨端適配、服務卡片設計等。我整理了一份超全解讀,帶你解鎖鴻蒙開發的“隱藏Buff”! 一、動態布局實戰
鴻蒙5開發寶藏案例分享---瀑布流優化實戰分享
鴻蒙瀑布流性能優化實戰:告別卡頓的寶藏指南!
大家好!最近在鴻蒙文檔里挖到一個 性能優化寶藏庫 ,原來官方早就準備好了各種場景的最佳實踐!今天重點分享「瀑布流加載慢丟幀」的解決方案,附完整代碼解析
發表于 06-12 17:41
鴻蒙5開發寶藏案例分享---性能體驗設計
;性能優化\"關鍵詞!
**如果大家在實戰中遇到卡頓難題,歡迎在評論區交流~ 也歡迎關注我,后續會持續分享鴻蒙開發實戰技巧! **?
希望這篇接地氣的總結能幫你避開性能深坑!如果覺得有
發表于 06-12 16:45
鴻蒙5開發寶藏案例分享---埋點開發實戰指南
鴻蒙埋點開發寶藏指南:官方案例實戰解析,輕松搞定數據追蹤!
大家好呀!我是HarmonyOS開發路上的探索者。最近在折騰應用埋點時,意外發現了鴻蒙
發表于 06-12 16:30
鴻蒙5開發寶藏案例分享---切面編程實戰揭秘
鴻蒙切面編程(AOP)實戰指南:隱藏的寶藏功能大揭秘!
大家好!今天在翻鴻蒙開發者文檔時,意外發現了官方埋藏的「切面編程」寶藏案例!實際開發
發表于 06-12 16:21
鴻蒙5開發寶藏案例分享---應用架構實戰技巧
大家好! 今天咱們聊聊鴻蒙開發中那些“官方文檔提了但實際開發難找”的架構設計技巧。結合官方文檔,我會用 真實代碼案例+通俗講解 ,幫你把分層架構和線程通信落地到項目里,告別“理論會了,代碼不會
發表于 06-12 16:14
鴻蒙5開發寶藏案例分享---一多開發實例(地圖導航)
? 鴻蒙開發隱藏寶藏大公開!手把手教你玩轉\"一多\"地圖導航案例 ?
大家好呀!我是你們的老朋友,今天要給大家扒一扒鴻蒙官方文檔里那些\"藏得深\"的實戰
發表于 06-03 16:17
開源鴻蒙開發新體驗,開鴻Bot系列今日開啟預售!
開發者大禮包,其中含KaihongOS桌面版鏡像包、KaihongOS桌面版二次開發包、實戰課程、燒錄指南等。同時,用戶還可享受一對一技術顧問服務、優先體驗新版本KaihongOS
發表于 05-16 14:13
全鏈路賦能游戲鴻蒙化適配,鴻蒙游戲開發者服務煥新升級
3月14日,華為游戲中心在成都開展了鴻蒙游戲開發者服務日線下活動。本次活動吸引了百余位游戲廠商代表以及開發者參與。華為一線技術專家團隊與眾多游戲開發
本周三晚7點!《手把手教你做PC》第四課:驅動子系統開發流程上-KHDF
本周三晚七點,《KaihongOS筆記本電腦開發實戰④——驅動子系統開發流程上-KHDF》即將啟動!本次課程旨在幫助開發者了解KaihongOS驅動
鴻蒙開發實戰:【電話服務子系統】
評論