Android源码个个击破之拨号源码


拨号源码详解:

       https://so.csdn.net/so/search/s.do?q=Android6.0%E7%9A%84phone%E5%BA%94%E7%94%A8%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90&t=blog&u=u014386544


拨号源码架构:

        https://www.jianshu.com/p/ca4ab4e9817f/     (一个电话应用,实际由多个代码模块组成。由dialer下的Android.mk可以看出)


        https://blog.csdn.net/wds1181977/article/details/61920067  (介绍各个模块的作用)



一、拨号

      通过调用Intent.ACTION_CALL,会打开系统的拨号引用。  

        向外拨号,发现当前显示的activity是(通过sdk工具image.png):

                    InCallActivity.java

        现在,我们需求是想自己实现拨号级来电接听,不走系统UI 。

        所以,我的思路是先确定Intent.ACTION_CALL是被谁处理了,怎么处理的,如何调起InCallActivity,InCallActivity又干了啥。

  •   InCallActivity被谁打开的

     在xref全局搜索,发现InCallPresenter.java这个类

     image.png

    通过官方的解释,可以知道此类正是管理通话状态, 开启InCallActivity。

    搜索InCallPresenter 又会被很多类调用,可见此类是集中处理通话状态的核心类。其中有 InCallServiceImpl,InCallServiceImpl注册在dialer的清单文件里:

    image.png



  •                


猜你喜欢

转载自blog.51cto.com/4259297/2372997