KaiOS Data PDN 數據建立流程

代碼邏輯

APN創建

在 DataCallManager.jsm中,會對所有apnsetting創建一個datacall,其中會包含dataprofile的成員(通過apn參數來創建),在之后的流程用于直接發送到modem建立PDN。

PDN建立

1、DataCallManager.jsm -dcInterface.setupDataCall

//RILNetworkInterface.connect()->DataCall.connect->DataCall.setup()
setup(){dcInterface.setupDataCall(radioTechnology,this.dataProfile,//...//此處是把建立的datacall(this)中dataprofile屬性值發送到RIL,在log中可以通過:“> RIL_REQUEST_SETUP_DATA_CALL”來查看需要建立datacall的dataprofile值。dataInfo.roaming,this.dataCallHandler.dataCallSettings.roamingEnabled,{QueryInterface: ChromeUtils.generateQI([Ci.nsIDataCallCallback]),notifySetupDataCallSuccess: aDataCall => {//回調函數,返回datacall建立結果this.onSetupDataCallResult(aDataCall);},notifyError: aErrorMsg => {this.onSetupDataCallResult({ errorMsg: aErrorMsg });},});this.state = NETWORK_STATE_CONNECTING;
},


2、/gecko/dom/system/gonk/radio/DataCallInterfaceService.jsm
DataCallInterfaceService的setupDataCall

  // nsIDataCallInterface  
setupDataCall: function(aRadioTechnology, aProfile, aIsRoaming, aAllowRoaming,aCallback) {//發送setupdatacall消息給到RILthis._radioInterface.sendWorkerMessage("setupDataCall", {radioTechnology: aRadioTechnology,profile: aProfile,isRoaming: aIsRoaming,allowRoaming: aAllowRoaming}, (aResponse) => {if (aResponse.errorMsg) {aCallback.notifyError(aResponse.errorMsg);} else {//如果沒有error,返回datacall建立成功let dataCall = new DataCall(aResponse.dcResponse);aCallback.notifySetupDataCallSuccess(dataCall);}});},


3、/gecko/dom/system/gonk/radio/RadioInterfaceLayer.jsm
RadioInterfaceLayer.jsm - sendWorkerMessage

完成以下接口操作后,setup datacall的請求已經通過RIL消息發給了mode

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10067.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10067.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10067.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言內存泄漏及檢測方法

目錄 1. 內存泄漏概述 1.1 內存泄漏定義 1.2 內存泄漏的危害 1.3 內促泄漏的原因 2. C語言中的內存管理 2.1 C語言內存分配方式 2.2 C語言內存管理函數 2.3 動態內存管理注意事項 3. 內存泄漏的檢測與定位 3.1 內存泄漏檢測工具 3.2 內存泄漏定位方法 3.3 內存泄漏…

NX/UG二次開發—3D幾何—多邊形內部最大圓

多邊形內部最大圓,為什么不能說最大內切圓?如果正方形或正凸多邊形,最大內部圓是與邊相切的,但對于不規則多邊形,很多情況是正好經過一些凹點。 本次介紹在NX中計算封閉邊界內部最大圓: 1、首先按順序排序…

Spring、SpringMVC

一、Spring框架中的單例Bean是線程安全的嗎? 【默認單例的情況下】Spring Bean并沒有可變的狀態(如Service類和DAO類),即只能查不能改,所以沒有并發問題,所以某種程度上來說Spring的單例Bean是線程安全的。…

【ZZULI數據結構實驗】壓縮與解碼的鑰匙:赫夫曼編碼應用

📃博客主頁: 小鎮敲碼人 💚代碼倉庫,歡迎訪問 🚀 歡迎關注:👍點贊 👂🏽留言 😍收藏 🌏 任爾江湖滿血骨,我自踏雪尋梅香。 萬千浮云遮碧…

Faiss原理及使用總結

Faiss(Facebook AI Similarity Search)是一個用于高效相似性搜索和密集向量聚類的庫。 一、原理 向量表示與相似度度量:在Faiss中,數據通常被表示為高維向量,這些向量可以來自深度學習模型的特征提取,也可…

2024-05-11 問AI:在深度學習中,學習率是什么

文心一言 在深度學習中,**學習率(Learning Rate)**是一個非常重要的超參數,它控制著模型在訓練過程中參數更新的步長。具體來說,學習率決定了在每次迭代(或稱為一個epoch)中,模型根…

前端工程化之包管理器

這里寫目錄標題 什么是包包管理工具常用的包管理工具npmnpm 基本使用初始化搜索工具包下載安裝包導入 npm 包基本流程生產依賴與開發依賴全局安裝安裝全部依賴安裝指定版本的包刪除依賴包 cnpm全局安裝nrm 的使用 yarn全局安裝yarn 常用命令 pnpm 【推薦使用】全局安裝 什么是包…

我國吻合器市場規模不斷擴大 國產化率有所增長

我國吻合器市場規模不斷擴大 國產化率有所增長 吻合器是替代手工切除或縫合的一種醫療器械,其工作原理與訂書機十分相似,可利用鈦釘對組織進行離斷或吻合。經過多年發展,吻合器種類逐漸增多,根據手術方式不同,吻合器大…

【JavaEE 初階(三)】多線程代碼案例

?博主主頁: 33的博客? ??文章專欄分類:JavaEE?? 🚚我的代碼倉庫: 33的代碼倉庫🚚 🫵🫵🫵關注我帶你了解更多線程知識 目錄 1.前言2.單例模式2.1餓漢方式2.2餓漢方式 3.阻塞隊列3.1概念3.2實現 4.定時器4.1概念4.…

支付寶小程序如何去除頁面下拉回彈

描述:支付寶小程序頁面下拉時會產生回彈,如果頁面上有拖拽功能,會有影響 解決方法: 頁面xx.config.js中設置:allowsBounceVertical: “NO” 官方文檔:https://opensupport.alipay.com/support/FAQ/7110b5d…

WT32-ETH01作為TCP Client進行通訊

目錄 模塊簡介WT32-ETH01作為TCP Client設置電腦作為TCP Server設置連接并進行通訊總結 模塊簡介 WT32-ETH01網關主要功能特點: 采用雙核Xtensa⑧32-bit LX6 MCU.集成SPI flash 32Mbit\ SRAM 520KB 支持TCP Server. TCP Client, UDP Server. UDP Client工作模式 支持串口、wif…

鴻蒙OpenHarmony技術:【Docker編譯環境】

Docker環境介紹 OpenHarmony為開發者提供了兩種Docker環境,以幫助開發者快速完成復雜的開發環境準備工作。兩種Docker環境及適用場景如下: 獨立Docker環境:適用于直接基于Ubuntu、Windows操作系統平臺進行版本編譯的場景。基于HPM的Docker環…

其他編程語言中調用 Python 腳本,如何設置Python腳本的相對路徑

import os# 假設 script_directory 是你的腳本所在的目錄 script_directory os.path.dirname(os.path.abspath(__file__))# 使用 os.path.join 來構建相對路徑 relative_path_to_image os.path.join(script_directory, 合并/figure_pic2.png)# 現在你可以使用這個相對路徑來加…

uni-app+vue3 +uni.connectSocket 使用websocket

前言 最近在uni-appvue3websocket實現聊天功能,在使用websocket還是遇到很多問題 這次因為是app手機應用,就沒有使用websocket對象,使用的是uni-app的uni.connectSocket 為了方便測試這次用的是node.js一個簡單的dom,來聯調模擬…

Apache Flume Agent內部原理

Apache Flume Agent內部原理 Apache Flume 是一個可擴展的、分布式的日志收集、聚合和傳輸系統。在 Flume 中,Agent 是一個獨立的進程,負責接收、傳輸和處理數據。Agent 內部包含多個組件,每個組件都有不同的功能和責任。 1. Source&#xff…

5個 Elasticsearch 核心組件

Elasticsearch 是一個基于 Lucene 的搜索引擎,它提供了分布式、高可用、多租戶的能力。Elasticsearch 的核心組件包括節點(Node)、集群(Cluster)、索引(Index)、分片(Shard&#xff…

三下鄉社會實踐投稿攻略在這里

在當今信息爆炸的時代,如何讓自己的聲音被更多人聽到,成為許多人和企業所關心的問題。其中,向各大媒體網站投稿,成為了一種常見的宣傳方式。但是,如何投稿各大媒體網站?新聞媒體發文策略又有哪些呢&#xf…

Flutter Clipboard實現復制功能

Flutter內置了Clipboard 功能,可以幫助我們完成復制粘貼的功能,比如我們想把“hello flutter”復制到粘貼板,代碼如下: TextButton(onPressed: () async {await Clipboard.setData(ClipboardData(text: hello flutter)

基于SpringBoot設計模式之開端

文章目錄 前言引言開始 前言 為了更好的在項目中,能更加優雅的使用設計模式,比較針對性的解決我們的問題。我將在這個專欄詳細的描述23種設計模式,為了與時俱進,我打算通過springboot的形式將23種設計模式全部擼完! 引…

光耦推薦—高速風筒方案中用到哪些光耦型號

高速風筒是現代生活中常見的電器設備,廣泛應用于家庭、商業和工業領域;光耦是一種能夠將輸入信號轉換成輸出信號的元器件,其作用在于將電氣信號轉換成光信號,從而實現電路的隔離和保護;采用光耦可實現對風機轉速和溫度…