主页面:packages/apps/Dialer/java/com/android/dialer/main/impl/MainActivity.java
通过OldMainActivityPeer/NewMainActivityPeer,来控制加载不同的fragment。
拨号界面:DialpadFragment
快速拨号界面:OldSpeedDialFragment
通话记录界面:CallLogFragment
通讯录界面:ContactsFragment
下面是拨号代码流程,只简单记录整体流程。帮助了解整体流程走向。
packages\apps\Dialer\java\com\android\dialer\dialpadview\DialpadFragment.java
handleDialButtonPressed()->PreCall.start(getContext(), builder)
-->DialerUtils.startActivityWithErrorToast-->placeCallOrMakeToast()
-->TelecomUtil.placeCall(context, intent)-
-->TelecomManager.placeCall(intent.getData(), intent.getExtras())
-->TelecomServic-->TelecomServiceImpl.placeCall()
-->UserCallIntentProcessor.processIntent()-->processOutgoingCallIntent()-->sendIntentToDestination()
-->TelecomManager.handleCallIntent()
-->TelecomServic-->TelecomServiceImpl.handleCallIntent()
--

本文详细介绍了Android 11中拨号代码的流程,从DialpadFragment开始,经过TelecomUtil、TelecomService和ConnectionServiceWrapper等组件,最终到达HAL层与Modem交互。同时,作者分享了自己在框架学习过程中的感悟,提到对代码结构的熟悉能提高解决问题的效率,并表达了对当前工作状态的满意和对未来的期待。
最低0.47元/天 解锁文章
1066





