赞
踩
最近调试Android的4G模块;这里做个总结;走个流程;代码就不贴了;公司保密;驱动方面没什么好说的;一般都是厂家会提供文档;其实也就是把4G模块虚拟机成ttyUSB0~ttyUSB5等几个虚拟串口;再打开CDC_NCM虚拟网卡绑定到某一个虚拟串口;产生虚拟网卡usb0或者什么的;
先走个大概流程;其实主要就是hardware/ril/几个库文件;修改的也不多;有些公司主要是修改reference-ril.so库的修改;有些公司为了公司保密直接给编译好的reference-ril.so文件;那更简单了;直接添加进系统就OK了;
关键函数:
initializeCallback()4G 模块初始化函数;里面就是一些发给4G模块的AT指令;不能出错;
onUnsolicited()函数接收4G模块对AT指令的返回值;可以在里面添加根据返回值相应的动作;比如根据拨号成功返回值做出绑定网卡分配IP的动作;
onRequest()主动拨号、上层发下来的所有AT指令都在这里;
一般调试4G模块就是修改上面的三个文件;
开机自动拨号实现:
frameworks/base/services/Java/com/android/server/ConnectivityService.java
还有个关键点:apns-conf.xml
根据你使用的SIM修改apns-conf.xml文件;就是apn接入点;如果apns-conf.xml文件里面没有相应的核心网的mcc和mnc则Android系统不能自动拨号;如下图;
注意点:
如果有些4G模式使用软卡、或者硬件是在4G模块初始化的时候决定的;修改相应的AT指令;在initializeCallback()函数里;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。