DcInactiveState状态是DataConnection的初始化状态,对应的处理事件包括如下:
1.EVENT_CONNECT此事件是Dctracker发起建立数据业务时对应的事件,主要做如下几个工作:
a. 调用ConnectionParams cp = (ConnectionParams) msg.obj; initConnection(cp)来初始mConnectionParams属性.
在android7.0前在initConnection()里面还要对建立数据业务失败后的重试次数和时间间隔进行设置,但是在android7.0时如果建立数据业务失败后且是需要重试的原因,那么重试的时间是由modem层返回的.
b .onConnect()方法对apn的authType和protocol属性进行检查,如下,并通过RILJ向modem层发起建立数据业务的请求.
int authType = mApnSetting.authType;
if (authType == -1) {
authType = TextUtils.isEmpty(mApnSetting.user) ? RILConstants.SETUP_DATA_AUTH_NONE
: RILConstants.SETUP_DATA_AUTH_PAP_CHAP;
}
String protocol;
if (mPhone.getServiceState().getDataRoamingFromRegistration()) {
protocol = mApnSetting.roamingProtocol;
} else {
protocol = mApnSetting.protocol;
}
c. 通过transitionTo(mActivatingState)把状态机切换到mActivatingState状态.