最近项目在做一个双模手机,我负责电话框架层的移植,因此把2.3版的电话模块又梳理了一遍。
今天刚好趁等板子的时间(我们项目很穷的,8个人共用一块板子调试,我的个去啊,要知道刷一次机是很麻烦很费时的。)
把前段时间整理的来电上报流程给帖出来,供拍。
框架层的上报流程都是通过通知机制实现的,举个例子:A要监听B的状态,可以在A中实现一个Handler,然后将该Handler注册到B中。即设计模式之观察者模式。
电话部分的通知机制如下图所示:
图画的比较烂,不好意思从小就没学过美术(当年的美术课都被班主任占了)。
所有电话模块model的改变,都会反映到RIL层上,RIL层提供了各种状态监听列表,提供其它地方注册自己的Handler。framework层的状态从RIL会一直通知到应用层的CallNotifier中。框架层即完成了通知的传递。
再来看看来电流程,是如何沿着这条通知链路完成的
首先RIL.RILReceiver线程循环执行读取rild层的信息:readRilMessage
如果读到有新来电过来,则将读取到的字节数组封装到Parcel中,调用processResponse处理Parcel
因为是新来电,属于主动上报,会走processUnsolicited
判断是新来电(RIL_UNSOL_CALL_RING),则调用mRingRegistrant.notifyRegistrant来通知已经注册了来电监听的Handler进行处理
PhoneBase对mRingRegistrant注册了监听,因此其handler会收到消息,然后会调用notifyIncomingRing将注册了自己的mIncomingRingRegistrants监听者发送消息,
CallManager中对Phone注册了mIncomingRingRegistrants监听,CallManager中的Handler会进行处理,执行mIncomingRingRegistrants.notifyRegistrants((AsyncResult) msg.obj);
而CallNotifier中的registerForNotifications方法向CallManager的mIncomingRingRegistrants注册了监听,所以CallNotifier的handler会收到消息进行处理,执行onNewRingingConnection((AsyncResult) msg.obj);
这样就完成了来电从RIL到应用层的传递。
分享到:
相关推荐
1. **来电检测**:当有来电时,硬件层检测到信号并通过`TelephonyManager`上报给系统。 2. **处理来电**:系统通过`Phone`类处理来电事件,触发一系列回调机制。 3. **通知应用程序**:通过发送特定的广播通知应用...
在来电流程中,属于modem的主动上报,因此会执行processUnsolicited()方法。这一方法会解析从Radio模块接收到的来电信息,并更新系统的状态。在RIL.java中,处理来电信息的代码段会识别来电信息,并将其通知给...
Unsolicited消息上报流程 Unsolicited消息是指由调制解调器主动向Java应用推送的信息,比如来电提示、网络状态变化等。这一流程对于实时通信至关重要,确保了应用程序能够及时响应外部事件,提高用户体验。 #####...
3. **电话接听工作流程**:规范接听电话的礼仪和服务态度,记录来电信息,转接或处理相关事务,可能还包括电话留言的管理。 4. **发送信件工作流程**:从信件的封装、地址核对、邮资计算到投递,需保证信件准确无误...
- 接待流程包括小型接待(来电、来人)和大型接待。 - 小型接待由接待人员初步处理,重要情况上报领导。 - 大型接待涉及多个部门协作,从了解情况、制定方案到落实接待全程管理。 8. **会议参与流程**: - 参加...
4. **电话接听工作流程**:可能涵盖接听规范、信息记录、转接或处理来电等步骤,以确保信息准确传递。 5. **发送信件工作流程**:可能包括信件的撰写、核对、封装、地址确认和邮寄等步骤。 6. **来宾接待工作流程*...
发送后,要决定原件的处理方式,如归还当事人或销毁,并对产生的费用进行汇总、分摊和上报。 2. **会议室、洽谈室工作流程**:此流程涉及会议室和洽谈室的预约、准备、使用和清理。包括预定系统的操作,设备检查,...
来电、来访管理流程则通过《来电、来访登记单》进行记录和存档。内部发文需由发文部门起草,经过部门经理、办公室、办公室主任和总经理或董事长的审批流程。 3. **固定资产和低值易耗品的购买及发放审批**:固定...
Response则包含Ril层对上层请求的响应,或者主动上报的信息,如来电或SIM卡状态变化。 Request和Response在Framework层的`com.android.internal.telephony`包中的`RilCommands.java`和Ril层的`ril_commands.h`中均...
11. **来电号码显示功能**:发送`AT+CLIP=1`启用来电号码显示功能。 12. **短信接收机制设置**:发送`AT+CNMI=2,1,0,0,0`设置短信接收上报机制。 13. **文本模式设置**:发送`AT+CMGF=0`设置文本模式。 以上步骤...
- **开机初始化**:电话模块开机后,通过ATREADY字符上报表示已注册到网络,此时模块才能进行电话拨打等后续操作。 - **查询SIM卡状态**:在进行电话拨打之前,需先确保SIM卡已插入模块并处于就绪状态。使用AT+CPIN...
- **统计报表**:定期统计售后服务数据,并上报相关部门,以便进行分析和改进。 以上内容概述了售后服务管理制度及工作流程的主要知识点,旨在通过规范化管理和高效的服务响应,提升用户满意度,增强品牌形象,促进...
首先,通过电话登记和现场咨询收集客户信息,对来电咨询的客户进行初步了解。随后,预约见面,进行园区介绍,展示园区的优势和潜力,同时进行合同谈判,以确定客户的投资意向。在客户参观后,进行上门回访,进一步...
投诉人可以是来电、来访或书信等方式,表格中需要记录投诉人的基本信息、患者信息、投诉时间和地点,以及被投诉的科室和个人。投诉内容的记录应尽可能详尽,以便后续调查。在处理过程中,医院会不断进行调查核实、...
总结起来,设备故障处理流程包括快速评估、应急操作、备用方案启用、生命体征监控、故障上报、恢复措施执行以及详细记录等步骤。在医疗环境中,每个环节都至关重要,确保了医疗服务的连续性和安全性。通过制定并执行...
2. **电话接听**:根据不同来电内容进行转接或记录,如业务咨询、预约体能测试等。 3. **会员入场和离开**:验证会员卡有效性,处理会员入场和离场手续。 4. **收银**:按照标准流程收取会员费用,唱收唱付,开具...
- 会话进度上报:在呼叫过程中,双方会不断交换信令以报告会话的进度,如183 Session Progress消息,表示被叫方已开始建立通话。 - 协商SDP:双方通过UPDATE消息协商会话描述协议(SDP),包括音视频编解码器、...
5. **审批招聘计划**:计划需要上报给主管副总经理和总经理审批,确保符合公司整体战略和预算。 6. **完善职位说明书**:对于新职位,人力资源管理员需编写《岗位说明书》,明确岗位职责、任职资格等信息。 7. **...
3. **对外协作**:负责与协作医院和友好医院的事务,包括医疗合作和技术指导,以及处理外部来电来信。 4. **制度制定与发布**:医务科负责制定、修改与医疗相关的各项规章制度,发布通告、通知、会议纪要和文件,...
- 工作场所的整洁和维护是每位员工的责任,发现问题应及时解决或上报。 6. **合同与印章管理**: - 销售代表无权修改合同内容或承诺付款条件,经济合同章由专人管理,不得随意携带。 7. **电话接待**: - 接听...