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消息给到RIL
    this._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

  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值