当前位置: 首页 > news >正文

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.lryc.cn/news/346003.html

相关文章:

  • Mybatis-Plus常用的增删改查坑
  • 初识指针(4)<C语言>
  • pyqt 工具栏QToolBar控件
  • SystemVerilog/Verilog中的仿真延时建模之模块路径延时
  • 代码随想录算法训练营Day36 | 738.单调递增的数字、968.监控二叉树、贪心算法总结 | Python | 个人记录向
  • FME学习之旅---day26
  • JAVA学习-练习试用Java实现电话号码的字母组合
  • js代码中关于async await的滥用 async await的滥用
  • 基础算法,贪心算法,贪心策略,OJ练习
  • 一文讲透亚马逊云三层架构
  • 只需3步,使用Stable Diffusion无限生成AI数字人视频(附安装包)
  • RustGUI学习(iced)之小部件(七):如何使用图像image部件来显示图片?
  • Substrate 入门课第 14 期圆满结束,岗位内推直达知名 Web3 项目!
  • android进阶-AIDL
  • 贪心算法-活动选择问题背包问题
  • Web3工具集合 - 00
  • 分布式与集群的区别
  • 学习心得:如何开始学习一款MCU
  • 顺序表的实现(迈入数据结构的大门)(1)
  • RERCS系统-WDA+BOPF框架实战例子 PART 1-新建List UIBB(列表组件)并分配Feeder Class和Node Element
  • 如何从 iPhone 恢复已删除或丢失的联系人?
  • RISCV 外部GCC 工具链安装@FreeBSD15
  • 全栈开发之路——前端篇(9)插槽、常用api和全局api
  • 减瘦误区、雷点、陷阱和挑战怎么应对
  • Leetcode—946. 验证栈序列【中等】
  • Selenium定位方法及代码
  • GitHub搭建免费博客
  • 开源代码分享(28)-含分布式光伏的配电网集群划分和集群电压协调控制
  • idea-自我快捷键-2
  • 深入学习指针3