失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android 10 拨打电话流程

Android 10 拨打电话流程

时间:2020-01-24 10:21:20

相关推荐

Android 10 拨打电话流程

接续上一章节,理解Android 10 拨打电话流程

packages/apps/Dialer/java/com/android/dialer/dialpadview/DialpadFragment.java

输入完电话号码,点击拨打电话按钮

进入到handleDialButtonPressed中

首先判断是否未空电话号码,如果为空,就会加载上次输入的电话号码

如果不为空,判断电话是否为非法号码,如果非非法号码,逻辑进入下面

首先看CallIntentBuilder

其本质为Intent ,其中uri为电话号码转换类型,其中最为重要为builder.build()这个方法,为Intent添加了Intent.ACTION_CALL的意图对象,并附加其他信息。

再回到PreCall.start最后进入到

packages/apps/Dialer/java/com/android/dialer/util/DialerUtils.javal类的

startActivityWithErrorToast方法中

该方法根据Action的不同,分两个分支逻辑处理,执行

placeCallOrMakeToast 和 Content.startActivity

PlaceCallOrMakeToast方法将继续执行拨号请求,最后调用到

frameworks/base/telecomm/java/android/telecom/TelecomManager.java中的placeCall

以上进程属于com.android.dialer进程

这是一次跨进程的调用,调用到实现ITelecomService的类中,ITelecomService接口定义文件是:frameworks/base/telecomm/java/com/com/android/internal/telecom/ITelecomService.aidl,而最终该接口将实现在packages/service/Telecom/src/com/android/server/telecom/TelecomServiceImpl.java文件中,至此Dialer逻辑结束。

DialpadFragment 提供拨号界面

CallIntentBuilder 创建拨号意图

TelecomManager 跨进程传递拨号请求

如果觉得《Android 10 拨打电话流程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。