Android 7.0 IMS框架详解 本文主要讲解IP Multimedia Subsystem (IMS)在Android 7.0上由谷歌Android实现的部分内容。 从APP侧一直到Telephony Framework,是不区分CS流程还是PS流程的。到了Telephony Framework模块,会依据IMS相关的状态信息(Registration Status,Service Status等)和用户设置信息(Volte E
Android Call分析(一) ---- Call对象详解 Call(通话)相关的内容也是属于Telephony模块,Call整体上可以分成两类: 1. CS call,其中CS全称是Circuit Switch,我们平常打电话走的就是CS的流程。 2. IMS PS call,其中PS全称是Packet Switch,走IMS流程的Call有4类,分别是VoLTE(voice over LTE),ViLTE(video over LTE),VoWiFi
Android Telephony分析(七) ---- 接口扩展(异步转同步) 本文是基于上一篇《[Android Telephony分析(六) ---- 接口扩展(实践篇)](http://blog.csdn.net/linyongan/article/details/52151651)》来写的。上一篇介绍的接口扩展的方法需要实现两部分代码:1. 从APP至RIL,发送请求;2. 从RIL至APP,上报结果。
Android Telephony分析(六) ---- 接口扩展(实践篇) 本文将结合前面五篇文章所讲解的知识,综合起来,实现一个接口扩展的功能。 如果还没有阅读过前面五篇文章的内容,请先阅读: 《Android Telephony分析(一) — Phone详解 》 《Android Telephony分析(二) — RegistrantList详解 》 《Android Telephony分析(三) — RILJ详解 》 《Android Telephony分析
Android Telephony分析(五) ---- TelephonyRegistry详解 本文紧接着上一篇文章《Android Telephony分析(四) —- TelephonyManager详解 》的1.4小节。 从TelephonyRegistry的大部分方法中: 可以看出TelephonyRegistry主要的功能是上报消息,有两种方式: 1. 通过notifyXXX方法。 2. 通过发送broadcast。 至于发广播没什么好说的了,我们看看notifyXXX方
Android Telephony分析(四) ---- TelephonyManager详解 前言TelephonyManager主要提供Telephony相关信息的查询/修改功能,以及Phone状态监听功能,封装的方法主要是提供给APP上层使用。 TelephonyManager.java 在frameworks\base\telephony\java\android\telephony目录下。1. TelephonyManager整体结构从TelephonyManager导入的文件中可
Android Telephony分析(三) ---- RILJ详解 前言本文主要讲解RILJ工作原理,以便更好地分析代码,分析业务的流程。 这里说的RILJ指的是RIL.java (frameworks\opt\telephony\src\java\com\android\internal\telephony) , RILC指的是Ril.cpp (hardware\ril\libril)1. RILJ的创建RILJ的继承关系如下
Android Telephony分析(二) ---- RegistrantList详解 前言本文主要讲解RegistrantList的原理,以及如何快速分析RegistrantList相关的代码流程。 在Telephony模块中,在RIL、Tracker(ServiceStateTracker、CallTracker、DcTracker)、Phone(PhoneBase及其子类)、UICC框架、CallManager等等中都大量使用到的RegistrantList,可见Regi
Android Telephony分析(一) ---- Phone详解 前言本文主要讲解Telephony中Phone相关的知识 ,1. Android N中Phone的改变。Android 6.0时,Phone的继承关系:
Android 6.0 SIM卡初始化流程 本文主要讲述Android 6.0 SIM卡初始化流程,UICC的架构图如下:/** * This class is responsible for keeping all knowledge about * Universal Integrated Circuit Card (UICC), also know as SIM's, * in the system. It is also use
CDMA2000各种信令流程 本文主要讲解CDMA2000与Call相关的各种信令流程,是在学习了3GPP2协议文档之后总结的。1. MS起呼流程1.1 Mobile Origination via a Circuit-Switched MSC MS在空中接口的接入信道上向BS发送Origination Me
handlePollCalls方法详解 当调用getCurrentCalls方法查询Call List当前所有的通话连接,查询的结果是交给handlePollCalls来处理的。handlePollCalls方法比较长,我们把它分解成几部分来分析:@Overrideprotected void handlePollCalls(AsyncResult ar) { 1.初始化操作,获取Call List。 2.更新通话的相关
Android 6.0 Phone 多方通话流程 写在前面的话本文主要分析Voice Call多方通话的流程,分析GSM和CDMA在多方通话不同的地方,研究的代码是Android 6.0的,目前只关注framework层。 1. 多方通话的概念下面引用来自《百度百科》的一段文字: 多方通话的发起流程是:主席方用户A先呼叫参与方用户B,B用户接通呼叫,形成一个典型的两人通话的基本呼叫场景,此后A用户通过终端菜单发起保持B用户呼叫的请求,此时B用户
【问题分析】RILJ多次发出GET_CURRENT_CALLS请求 在刚接触Qcril的时候,特别是在研究接电话和打电话的流程的时候,可能会有小伙伴跟我一样,被RILJ发来的GET_CURRENT_CALLS请求搞晕了。有时候会RILJ会多次发出GET_CURRENT_CALLS请求,两次或者三次,不确定。 举个例子,每次出现GET_CURRENT_CALLS error之后,RILJ都会发出一次GET_CURRENT_CALLS请求,所以,我们先假设“GET_C
Android 5.1 Phone 挂断电话流程分析 本文主要分析Android挂断电话的流程,研究的代码是Android 5.1的,以CDMA为例,GSM同理。 挂断电话主要分两种情况:本地主动挂断电话和远程断开通话。这里说的本地主动挂断电话,是这里说的本地主动挂断电话,是指通过点击UI界面上的挂断按钮来挂断电话,而不是通过物理键来挂断电话;至于通过物理键挂断电话,第二节再分析。
Android 4.4 自动拨打分机流程分析 Android 自动拨打分机流程自动拨打分机流程分析,现在我们只关注framework层,以CDMA为例,GSM同理。 至于什么是自动拨打分机,如下图,输入一个电话号码,再选择“等待时间延长2秒”,就会显示一个分号,接着就可以输入分机号码了 好了直接进入正题吧,在上面输入完号码之后,点击“拨号键”就开始拨号了 1. 至于 从拨号到接通的过程
Android 5.1 Phone DTMF流程分析 本文主要分析Android DTMF的流程,研究的代码是Android 5.1的,以CDMA为例,GSM同理。在手机中,常用的DTMF场景是使用手机拨打一些服务台电话,比如客服热线10086、10000之类;电话接入之后,有对应的语音提示输入不同的数字进入不同的菜单,或者要修改资料,对方要验证我们的账号和密码,这时打开手机拨号盘,输入数字信息,对方就知道我们输入的内容是什么。1. DT
Android 6.0 Phone MO(去电)流程分析(应用层) 写在前面的话本文主要分析MO(去电)的流程,研究的代码是Android 6.0的,目前只关注应用层,以GSM为例。(如果图片看不清的话,可以右键选择在新标签中打开图片,或者把图片另存到自己电脑再查看。)本文来自\color{red}{本文来自}http://blog.csdn.net/linyongan ,转载请务必注明出处。\color{red}{,转载请务必注明出处。}步骤1:当用户点击拨号键盘