Android4.4 Telephony流程分析

本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉。

本文分析的是单个通话情况下,多方通话流程会略有不同。下图为简要时序图:

想说点啥,可感觉上图已经描述的挺清楚了,懒得浪费笔墨(懒人的借口),需要注意的是图中数字序号并不是绝对按时间排序的,另外:

39.mCallLogger.logCall() ————— 通话记录存储

38.onVoiceCallEnded ————— 数据连接处理

40.mPhone.notifyPhoneStateChanged() ————-通话状态变化(注:这个主要是用来对外的,第三方app通过TelephonyManager来获取通话状态)

留待之后分析。

上图主要说的是本地挂断的流程,connection连接断开的原因为Connection.DisconnectCause.LOCAL,如果是远端挂断(即对方挂断),则没有RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND这一请求过程,而是在流程之后,handleCallProgressInfo中请求通话断开的原因EVENT_GET_LAST_CALL_FAIL_CAUSE(即RIL_REQUEST_LAST_CALL_FAIL_CAUSE),会返回原因Connection.DisconnectCause.NORMAL。

右键复制图片地址,在浏览器中打开即可查看大图。

未完待续,有不对的地方,请指正。

版权声明:本文为博主原创文章,未经博主允许不得转载。

,于千万年之中,于千万人之中,在时间无涯的荒野中,

Android4.4 Telephony流程分析

相关文章:

你感兴趣的文章:

标签云: