接续上一章节,理解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 拨打电话流程相关推荐

  1. android N 拨打电话流程(MO)

    本流程图基于MTK平台 Android 7.0,拨打的普通电话,本流程只作为沟通学习使用 整体流程图 流程中部分重点知识 packages-apps目录 dialer应用的DialpadFragmen ...

  2. Android5.1 Telephony流程分析——拨打电话流程(MO CALL)

    本文代码以MTK平台Android 5.1为分析对象,与Google原生AOSP有些许差异,请读者知悉. 此图主要是根据Android源代码拨打电话流程来绘制,记录了电话拨打的主要过程: 参考博客:h ...

  3. Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...

    编写android拨打电话apk应用实例代码 android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家. MainActivity.java package com.bblei.c ...

  4. Android Tel 拨打电话及来电流程分析

    打电话流程 接下来分析一下打电话的流程.输入电话号码的流程这里忽略.输入电话号码之后会点击拨打图标.之后就会走拨打电话的流程了.这部分是在packages/apps/Dialer/src/com/an ...

  5. 脚本控制向Android模拟拨打电话,发送短信,定位设置功能

    做行为触发的时候要向模拟器实现拨打电话,发送短信,定位设置的的功能,可以很方便通过telnet localhost  5554实现. 写个脚本很快的搞定了.网上资料很多,脚本的很少,也所积点德啦. 写 ...

  6. android调用拨号界面拨打电话功能,Android实现拨打电话功能

    添加权限: 实现: package com.example.call_person; import android.annotation.SuppressLint; import android.co ...

  7. Android实现拨打电话

    一.添加拨打电话的权限 <uses-permission android:name="android.permission.CALL_PHONE"/> 二.两种方法 1 ...

  8. android如何拨打电话

    方法一:直接拨打电话,需要添加权限 <uses-permission android:name="android.permission.CALL_PHONE" /> / ...

  9. Android手机拨打电话、手动发送短信与自动拨打电话、自动发送短信(代码很简单哦)

    Android实现手动拨打电话,即点击后跳转到手机默认电话号码输入页面,可以将相应号码传送过去: <span style="font-size:18px;"> Inte ...

最新文章

  1. 机器学习与数据挖掘网上资源搜罗——良心推荐
  2. JavaScript 编程精解 中文第三版 十、模块
  3. ASP网站程序自动升级实现的方法
  4. db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql代码示例
  5. idea 中javax.servlet.http.HttpServlet包导不进来
  6. 作业27-登录之后更新导航
  7. 蓝桥杯 java基础练习 回形取数
  8. 三维旋转四元数系列(1.复数与二维旋转)
  9. 『诡异的』VL10B创建外向交货单出错解决全过程
  10. MDC机制实现日志的链路追踪
  11. 三条中线分的六个三角形_初中数学:在三角形中辅助线添加规律归纳总结
  12. CFA一级知识点总结
  13. md5在线转换计算机,已解付费MD5在线解密查询
  14. 淘宝详情页设计要点有哪些 优秀淘宝详情页面多少屏合适
  15. 感慨一下中年人的焦虑
  16. 【Excle数据透视表】如何移动数据透视表的位置
  17. 12032 解救小哈
  18. 工作11年,35岁,裸辞: 感到前途很迷茫,如何破?
  19. 软考中级软件设计师--7.设计模式
  20. 没有公网IP,3个路由器就能解决连锁视频监控

热门文章

  1. iptables --algo 字符串匹配算法 bm kmp
  2. Unhandled JS Exception: Unexpected identifier ‘_classCallCheck‘. import call expects exactly one arg
  3. 车载网络测试 - 车载以太网 - ICMP详细解析
  4. android studio try again,完美解决Android Studio在gradle上的各种问题
  5. 留美CS学习的第一学期总结
  6. 图解Janusgraph系列-查询图数据过程源码分析
  7. photoshop图层解锁及不能解锁的原因
  8. 在电脑上下载哔哩哔哩中的视频
  9. 打印********的平行四边形
  10. HIT-哈工大数据结构-作业4(C++)