MTK Phone 主动呼叫流程分析(一)
来源:互联网 发布:软件标题修改器 编辑:程序博客网 时间:2024/06/01 08:42
一、DialpadFragment.onResume 方法
1、mVolteConfCallEnable
Volte 通话标识,是返回true,否返回false
2、DialtactsActivity
启动拨号界面
3、queryLastOutgoingCall
二、DialpadFragment.onClick 方法
1、onclick() 响应拨号按钮事件,交由handleDialButtonPressed()处理
2、startActivityWithErrorToast()发起通话界面,获取TelecomManager服务
3、TelecomManager.placeCall 发起通话,即调用到TelecomServiceImpl.placeCall 方法
三、TelecomManager 类
1、路径:frameworks\base\telecomm
2、初始化该对象通过Context.getSystemService(Context.TELECOM_SERVICE)完成;
3、调用TelecomManager.placeCall 方法
4、getTelecomService() 实现 AIDL 服务对象的获取
5、placeCall 继而调用到 TelecomServiceImpl.placeCall()
四、TelecomServiceImpl 类
1、路径:packages/services/Telecomm
2、实例化 ITelecomService.Stub 对象,实现其接口方法 placeCall
3、
注:TelecomManager与 TelecomServiceImpl 通过 TelecomLoaderService实现绑定
实现方法可以参考《AIDL 跨应用服务》
五、TelecomServiceImpl.placeCall 方法
1、获取电话权限,通过userCallIntentProcesser.processIntent 函数传入事件“android.intent.action.CALL”
2、类userCallIntentProcesser 处理三类通话事件类型:CALL , CALL_PRIVILEGED , CALL_EMERGENCY
3、processOutgoingCallIntent() 视频通话判断,继而sendBroadcastToReceiver() --> mContext.sendBroadcastAsUser() 发起通话
4、抽象类Context 的实现类 ContextImpl,实现其方法 sendBroadcastAsUser()
5、ActivityManagerNative.getDefault() 获取 IActivityManager 接口的服务对象,调用ActivityManagerService.broadcastIntent() 方法
6、ActivityManagerService 内部调用 broadcastIntentLocked() 方法
- MTK Phone 主动呼叫流程分析(一)
- android 4.4 phone 主叫和被动呼叫的流程分析
- linphone呼叫流程分析
- WCDMA的呼叫流程分析
- 主叫基本呼叫流程分析
- android呼叫流程源码分析
- SIP用户呼叫流程分析
- mtk 拍照流程分析
- 主动呼叫KVO(NSKeyValueObserverNotification)
- Android-RIL流程(呼叫等待)分析
- BCM VOIP 基本呼叫流程分析
- android呼叫流程分析--整体介绍
- Android 5.0/L 呼叫流程分析
- SIP协议呼叫流程及协议分析
- 呼叫流程
- 主动上报电话信息流程分析
- wireshark 分析 sip 呼叫流程 分析sip协议
- MTK feature phone 52D FLASH配置分析
- 18:实现删除字符串中出现次数最少的字符
- 面向对象程序设计上机练习十(运算符重载)
- 点击输入框,下拉弹框,点击页面的其他部分,弹框消失
- IOS 简单的动画自定义方法(旋转、移动、闪烁等)
- 缩放图片的两种方法
- MTK Phone 主动呼叫流程分析(一)
- 分分钟实现pdf转换成jpg格式
- [LeetCode] 200. Number of Islands
- 设置状态栏的背景颜色和字体颜色
- iOS10 权限崩溃问题
- openCV 图像绕中心旋转
- iOS 10 的适配问题总结
- 将资源文件的图片转换成bitmap 的两种方法
- Android主题和样式之系统篇(上级)