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
相关文章推荐
- 数据业务建立流程之常规APN参数的创建
- 数据业务建立流程之DcTracker创建过程
- 数据业务建立流程之DcTracker创建过程
- 数据业务建立流程之APN参数的激活(原)
- 数据业务建立流程之DcTracker创建过程(原)
- 数据业务建立流程之APN参数的激活
- 数据业务建立流程之APN参数的激活
- 数据业务建立流程之发起网络连接过程
- 数据业务建立流程之DcTracker创建过程
- 数据业务建立流程之常规APN参数的创建(原)
- 数据业务建立流程之发起网络连接过程
- 数据业务建立流程之常规APN参数的创建
- 数据业务建立流程之发起网络连接过程
- 数据业务建立流程之APN参数的激活
- 数据业务建立流程之发起网络连接过程(原)
- 流程数据和业务数据的交互
- Android数据业务发起流程(原)
- P2P小贷网站业务数据流程分享
- 【Modern Business Process Automation】现代业务流程自动化:Day3.数据模型和资源模型
- JFlow&CCFlow流程引擎的业务数据与流程数据同步的操作步骤.