您的位置:首页 > 移动开发 > Android开发

Android6.0 Telephony Frameworks之数据业务建立流程

2016-12-01 16:43 302 查看

数据业务(数据网络,即SIM卡上网)的建立需满足两个条件:1.选择并激活合适的APN;2.PS域已处于Attached状态。默认状态下,手机开机后就会发起PS附着的信令给网络。而所有数据网络的请求(打开关闭数据开关、切换数据卡、修改APN等)都必须经过DcTacker.java处理,其是Telephony框架中负责数据业务的核心。

一、数据业务建立之准备知识

1.      DcTracker

DcTracker对象在Phone对象创建过程中被创建,继承于DcTrackerBase,而DcTackerBase继承于Handler,主要完成以下任务:

1.               update():onUpdateIcc更新SIM卡状态;getDataEnabled()获取数据流量开关状态;

2.               初始化各种监听器:registerForAllEvents(),并完成相应事件处理,如PS Attached事件EVENT_DATA_CONNECTION_ATTACHED和网络技术(LTE/GSM/UMTS)监听事件EVENT_DATA_RAT_CHANGED;

3.               初始化一些基本的APN参数:initApnContexts();



图1 DcTacker构造函数源码

2.      APN创建

APN的创建主要有两种情况触发:①SIM卡载入完毕(onRecordsLoaded());②APN改变(onApnChanged())。上述两个方法均是通过调用createAllApnList()实现APN的创建。



图2 APN创建

二、数据业务建立流程

framworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection

数据业务的建立有多种原因触发,如漫游、通话结束、APN改变、SIM卡载入完毕和网络模式改变以及PS Attached。本文将就常见的PS Attached进行分析。在DcTacker.java 类中的registerForAllEvents()方法中对PS Attached事件进行注册监听,代码如下:

Protected void registerForAllEvents(){
mPhone.getServiceStateTracker.registerForDataConnectionAttached(this,DctConstants.EVENT_DATA_ATTACHED,null);
}


因此当PS域Attach成功之后,将会收到EVENT_DATA_CONNECTION_ATTACHED消息:



图3 GsmServiceStateTracker注册dataconnection attached事件



图4 EVENT_DATA_ATTACHED消息处理



图5 onDataConnectionAttached方法
onDataConnectionAttached方法调用setupDataOnConnectableApns(),后续步骤详见http://note.youdao.com/share/?id=e37a4204ab15f8be458fad2339aa914c&type=note#/

整体流程如下:



由于不同事件,DcTracker交互对象不同,所用图中用空模块表示,且不同事件的处理流程也不尽相同,图中仅列出相同部分。而不同事件的DcTracker交互对象如下表所示。



三、数据业务建立上层触发之数据开关

此部分具体代码流程详见http://note.youdao.com/share/?id=71132d434ac52fe9218f8a88ea62e0d5&type=note#/,本文仅以log的形式加以说明。上层Apk打开关闭数据开关的动作具体表现在log如下:
1.      main_log:
D TelephonyManager: setDataEnabled: enabled=true 关键词:setDataEnabled

2.      radio_log:D RILJ    : [3995]>RIL_REQUEST_SET_DATA_ON_TO_MD: 1 [SUB0]  关键词:RIL_REQUEST_SET_DATA_ON_TO_MD

D AT      : AT> AT+EDSS=1  关键词:EDSS,其中1表示数据开关打开,0表示数据开关turned
off
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: