今天试图解决android挂断电话没有响应的一个bug,跟踪了一下Android 挂断电话流程,在此做个记录
有电话打入是RIL会通知CallNotifier,CallNotifier会调用InCallScreen,这些不再我们今天讨论的范围内,简单提一下。
CallNotifier会调用InCallScreen 代码
然后InCallScreen会显示InCallTouchUI ,InCallTouchUI 就是可以拖动接听和挂断的那个界面 ,这个页面持有一个SlidingTab控件,这个就是可以左右拖动的控件了。
InCallTouchUI实现了SlidingTab.OnTriggerListener, 在该监听者的OnTrigge方法里面处理接听和挂断的动作,代码如下
InCallScreen的 handleOnscreenButtonClick方法
然后调用PhoneUtils.hangupRingingCall(mCM.getFirstActiveRingingCall()); 方法
然后进入 GsmCall
然后进入frameworks/base/telephony/java/com/android/internal/telephony/gsm/GsmCallTracker.java
可以看到很多不同情况下挂断电话的处理,我们只看第一种情况hangupWaitingOrBackground
下面进入RIL java, 向rild 发请求了
再往下就是 rild , 厂商refence ril工作了 ,其实就是发AT命令,这部分每个厂商可能有自己的实现,就不细说了 。
总之,android的挂断电话流程还是挺复杂的,中间要处理很多不同的情景。
分享到:
相关推荐
android 挂断电话所需要的包
博文题目 来去电悬浮窗提示号码,联系人,联系人头像 其中来去电弹出的悬浮窗中点击挂断按钮挂断电话所需的 文件,使用的是反射机制
NULL 博文链接:https://mft.iteye.com/blog/2026983
这是一个通过反射自动拨打电话和挂断电话的demo,如果不知道原理的,可去http://blog.csdn.net/u013895206 博客了解下原理。
Android来去电监听,电话挂断
android挂断电话,需要使用aidl。资源我发上来了。 还解决了双卡无法挂断你的问题。 百度搜出来的,都没有解决
安卓开发-Android 实现自动接听和挂断电话功能.zip.zip
实现自动接听和挂断电话功能
安卓Android源码——实现自动接听和挂断电话功能.zip
Android的AIDL以及挂断电话, 通过AIDL来让用户挂断电话
Android4.0通话流程总结+呼入+呼出+状态改变+UI发AT命令+远程挂断+本地挂断 Android4.0通话流程总结+呼入+呼出+状态改变+UI发AT命令+远程挂断+本地挂断
android 自动接听电话和挂断(支持所有版本)
主要为大家详细介绍了android实现接通和挂断电话功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
如果来电号码没在联系人中,则进行挂断,并在首页显示
实现打电话并且,即使挂断电话
CallSlideView滑动实现接听和挂断电话的View效果图1、向左滑动接听,向右滑动挂断2、向两边滑动时,颜色渐变3、颜色和字体可以在xml中完全自定义实现方法监听onTouhc,在运动的过程中不停的出发onDraw,画图同时颜色...
自己在练习电话接口反射机制的时候,写的一个小应用。对了解电话反射机制大有帮助.
自己做的Android来电接听界面,可以左右滑动接听或者挂断源码 自己做的Android来电接听界面,可以左右滑动接听或者挂断源码
首先抛开Android的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代PC。但是作为一个...
首先我们发现现在我们所用的android智能手机大部分都有当你在打电话时按power键来挂断电话,一般都是在设置中。 我主要是在原生源码中添加这一功能,主要用于学习。。。。先看一张图: 看到那个按电源键挂断电话吧,...