Android7.0 数据业务长连接拨号过程

前面我们已经分析了android在进行数据业务拨号前,进行相关准备工作的流程,现在我们可以分析一下整个数据业务长连接拨号在框架部分的流程。

长连接的“长”,是相对于终端进行彩信发送等操作时,建立的临时数据连接而言的(这种临时数据连接在业务执行完毕后,会主动断开),是能够长时间存在的数据连接。

1 CellDataPreference
我们从点击UI界面的数据拨号开关开始分析整个流程。
在原生的Android代码中,数据开关作为设置的一部分,相关的操作定义于CellDataPreference.java中,定义于packages/apps/settings/src/com/android/settings/datausage目录下。

我们看看处理点击操作的performClick函数:

@Override
protected void performClick(View view) {
	.............
	//开关处于开启状态
	if (mChecked) {
		//当前subId对应的卡信息(卡需要处于激活状态,即相关信息已经加载)
		final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
		//默认数据卡对应的卡状态
		final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();

		//showSimCardTile判断手机是否支持多卡,支持的话返回true
		//整个If的含义就是:仅支持单卡,或者默认数据卡与当前的卡信息一致
		if (!Utils.showSimCardTile(getContext()) || (nextSir != null && currentSir != null &&
		currentSir.getSubscriptionId() == nextSir.getSubscriptionId())) {
			/

你可能感兴趣的:(Android源码学习笔记)