打电话请求流程
1.进入键盘界面(TwelvekeyDialer),点击dialButton发送ACTION_CALL_PRIVILEGED动作来启动OutgoingCallBroadcaster.
2.OutgoingCallBroadcaster对紧急号码进行处理后发ACTION_NEW_OUTGOING_CALL广播,由内部类OutgoingCallReceiver接收,由该类来启动InCallScreen。
3.InCallScreen的onCreate中调用initInCallScreen初始化打电话界面,registerForPhoneStates注册电话状态监听,由内部Handler对象来处理监听(用于对底层的响应,在打电话响应流程中会使用),再调用internalResolveIntent,该方法中调用placeCall发送打电话请求。
4.placeCall中通过调用PhoneUtils的placeCall实现,PhoneUtils的placeCall再调用GSMPhone的dial方法,该方法再调用GSMCallTracker.dial方法。而GSMCallTracker持有CommandInterface对象,即RIL类的实例。RIL的dial方法对intent进一步处理,再调用自身的send方法发送RILRequest对象,由内部类RILSender对象代理发送,该对象通过LocalSocket写入输出流中。套接字方法在LocalSocketImpl中由native函数实现。
上述步骤即完成了从用户发送打电话请求到框架层向底层发送請求的流程,然后通过socket转到RIL层处理dial請求。
打电话响应流程
1.RIL中的内部类RILReceiver监听守护进程rild的上报,从套接字中读取上报信息,并依次调用readRilMessage,processResponse,processSolicited进行处理。
2.processSolicited方法向GSMCallTracker对象发送消息。GSMCallTracker对象的handlerMessage方法进行处理。接着调用updatePhoneState方法更新状态。
3.该方法调用GSMPhone.notifyPreciseCallStateChanged,进而调用RegistrantList对向的intelNotifyRegistrants,该方法循环处理已经注册到RegistrantList中的事件,然后通过Registrants向注册的handler发送消息。
4.InCallScreen中注册的handler将会接收到消息,并来响应onPhoneStateChanged事件。该事件进而调用updateScreen来更新界面。
上述过程即完成了从RIL层到应用层的响应过程。
打电话的請求流程和响应流程基本涵盖了RIL层与应用层的消息传递流程。诸如来电流程及应答流程的通信方式基本相似。
分享到:
相关推荐
iPhone.UIKit.Framework
iphone 开发的UIKit的FrameWork,不是英文的,结合翻译软件差不多也能看懂,开发iphone应用挺实用,很多基础功能。各种控件库
Microsoft XNA Framework Edition Programming Windows Phone 7
Android、iPhone、Windows Phone手机网页及网站设计 最佳实践与设计精粹 pdf扫描版
tekitizy_carousel是一款jquery响应式弹出层图片画廊插件。该弹出层图片画廊可以将页面中所有带相同class类的图片制作为一个无限循环的旋转木马效果。它的特点还有: 完全响应式。 通过图片的alt标签来设置标题。 ...
iphone Foundation框架参考,可以本地查找苹果手机开发时不懂的方法和类,很实用的。
Sift app:实时监控 iPhone 上所有应用的网络请求,让你知道你的手机 App 都干了什么.zip,Uncover network traffic in real-time for every app on your phone
【Foundation Framework Reference】[PDF] [iPhone/iPad/iOS]
仿Windows Phone博客导航源码 程序介绍: Windows Phone Blog Menu是一个Silverlight导航控件,看起来像Windows Phone 7。 控件中的tiles链接到web站点在你的博客中使用这个控件可以表达你对WP7的喜爱。 Windows...
Spring Framework Reference,Spring框架文档电子书,适合iPad和iPhone等设备翻阅的掌上书籍,英文版。
iPhone UIKit Framework Reference.pdf Mac Foundation Framework Reference.pdf Objective-C Beginner's Guide.pdf The Objective-C 2.0 Programming Language.pdf The Objective-C Programming Language.pdf ...
刚开发的一款windows phone上用的手机小电筒
This book provides a serious, in-depth look at Apple’s External Accessory Framework and the iPhone Accessories API. You’ll learn how to create new, integrated solutions that combine iPhone apps ...
Chapter 3:EA Framework Design Patterns Part II:Project Walkthrough Chapter 4:The Game Controller Chapter 5:Specifying a Pong Game Chapter 6:Coding a Pong Game Chapter 7:Adding the Game Controller ...
windows phone 开发书籍及资料
robotframework接⼝测试案例 1.关键字:post请求 *** Settings *** Library RequestsLibrary *** Keywords *** post.request [Arguments] ${url} ${api} ${data} ${headers} [Documentation] post请求封装 #创建...
ASP.NET MVC with Entity Framework and CSS by Lee Naylor 2016 | ISBN: 1484221362 | English | 608 pages | True PDF | 30 MB This book will teach readers how to build and deploy a fully working example ...
iphone private framework
Windows Phone 7 UI设计及人机交互指南,微软官方发布,中文版。因为Windows Phone 7采用全新的metro设计风格,所以做Windows Phone 7开发必须要了解这些基本规则。
二、Quidway A8010 IP 电话网关的硬件系统及软件系统简介 Quidway A8010 IP Phone产品是建立在接入服务器的基础上。其硬件系统和软件系统与接入服务器基本相同,主要区别如下: 1、Quidway A8010 IP 电话网关与...