enabledate(),还有在SETTING里保存APN配置,都会触发拨号连接的。PPPDservice的启动是在Phone里面当,当接收到 case EVENT_SETUP_PDP_DONE:
dataLink.connect();//dataLink是pppLink.java
SystemService.start(SERVICE_PPPD_GPRS);//启动pppd_grps服务
poll.what = EVENT_POLL_DATA_CONNECTION;
sendMessageDelayed(poll, POLL_SYSFS_MILLIS);//启动轮询,看是否成功连接gprs
checkPPP()//每隔5秒轮询,看是否连接成功,或断开
//如果已经连接
mLinkChangeRegistrant.notifyResult(LinkState.LINK_UP);
虽然 pppd_gprs 服务是在 init.rc 中列出,由于其初始为 disabled ,只有外部发起启动该服务的指令才会被运行。 启动 ppp 服务部分 (ppplink.java) ---android2.1
拨号脚本的流程是PPPD调用CHAT下发网络链接的命令,(atd*99***1#,或者at+CGDATA),然后通过PPPD解析一下网络握手协议链接上网,但是在ANDRIOD中是只存在PPPD,并不存在CHAT的。
调试RIL的几个手段:
1. 用microcom工具,测试AT命令,看模块对AT命令的支持情况,模块的AT命令语法往往有些小差异;
2. 纯linux root环境下测试pppd拨号,调试脚本语法情况,这个各个厂家会有些差异,注意用户名与密码一般不能少;
3. 在android环境下,可以通过rild, pppd命令手动调试,关键要好好理解android RIL的架构。
==============================================
http://blog.csdn.net/ccwwff/article/details/5224842
我现在这种上网是跟android完全没有关系的。还没有跟上层完成数据传输。
要完成跟上层的数据传输,就必需要实现要正确的返回我刚才问你的那个问题“GET_IMEI”, "GET_IMSI",
因为这两个返回了,android才能完成与apns-conf.xml文件中的numeric值的匹配。