OMADM 机制根据节点信息修改对应的APN,因此代码也通过Node消息管控实现。
业务模块
Interface | Module | Comment |
_listenOpApnSettings(simslot)? | operator_variant_manager.js | |
opCheckIsInProgressAndSaveNodeValue(node, value, simslot) | operator_variant_manager.js | |
saveAndUpdateApnValue(node, value, simslot) | operator_variant_manager.js | |
applySettings(mcc, mnc, updateAPN) | operator_variant_handler.js | updateAPN是OMADM对应的APN class 类型 |
applyOperatorVariantSettings(result) | operator_variant_handler.js | |
buildApnSettings(allApnList) | operator_variant_handler.js | |
buildPreferredApnSettings(apnSettings) | operator_variant_handler.js | 此接口只会被调用一次,因此在manager里面循环传参updateAPN调用applySettings()执行卡的时候,不能下发全部类型的全部APN。(存疑) |
setDataProfileByType | EngmodeManager.jsm | Manager通过发消息触发服务执行: 1.Services.cpmm.sendAsyncMessage("Engmode:setDataProfileByType", 2.内部收到消息在receiveMessage(aMessage)匹配case 执行 case "Engmode:setDataProfileByType:Return": 3. |
_setDataProfileByType | EngmodeService.jsm | 在?buildPreferredApnSettings定制的类型会触发dataprofile下发MD,在engmode中实现。 |
/gecko/koost/engmode/EngmodeService.jsm
在engmode实现同步APN到MD的接口
js module | Interface | Comment |
EngmodeManager.jsm | setDataProfileByType(strApnSetting, type) | 管理通过消息调起服务。 |
EngmodeService.jsm | _setDataProfileByType(networkType, profileId, apn, protocol, roamingProtocol, authType, user, password, type, maxConnsTime, maxConns, waitTime, enabled, inactivityTimer, callback)? | 定义服务 |