拖把厂家
免费服务热线

Free service

hotline

010-00000000
拖把厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

基于Android平台的双网双待的设计方法 - 消费电子 - 免费猫

发布时间:2020-02-17 12:37:48 阅读: 来源:拖把厂家

基于Android平台的双网双待的设计方法 - 消费电子 - 电子工程网

在PhoneAPP 中new 一个GSMPhone 和一个CDMAPhone,分别对应两种framework (不同的CallTracker)和RIL (不同的RIL),实现单模向双网双待的改进。

图中CallLiST 主要用来管理两个电话之间的切换,以避免如挂掉某一个通话却导致另一个的通话也结束等一系列界面显示出错问题。CallList 模块管理两个电话以及这两个电话所有的通话,通过一个CallList 表来存储两个电话的所有呼叫。上层界面调用这个CallList 表来处理两个电话的切换。在framework 中new 一个CallList 的类来存储phone 的多个电话以便上层显示。

CallList 类中包含attached(),detach(),update(),clear(),get-CurrentCall(),getDefault()等方法。使得两个Phone 的Call 得到控制。挂掉的时候就从表中删除,来电话的时候加入表中。

上层显示的时候,只要调用CallList 中的最后存入Call 就不会出现界面出错的情况。

在包含GSM 网络和CDMA 网络的双网双待模块中,因为有了CDMA 部分的整合不少代码已经发生改变,原来的CallTracker只被GSM 使用,在这里改为CallTracker 和GsmCallTracker,抽象出CallTracker 基类,使其也可以被CDMA 利用; GSMCall 变成GsmCall,更加符合统一的命名规则; 另外,比如pppd 的启动部分,也从Java 框架层放到RIL 层。

3. 2 Android RIL 层的改进

在Android 系统中RIL 是电话系统的本地实现,它提供了Android 电话服务(android. telephony)与无线电硬件之间的抽象层,主要负责AT 命令的发送和响应解析,这也是电话服务的实现基础。另外,RIL 还负责数据的可靠传输。因此RIL 在Android电话部分起核心作用。本方案设计过程中主要涉及到RIL以下四个部分的修改:

(1)由于本方案维护两个RIL 实例,因此RIL 实例管理者(RIL instance Manager)需要各自负责与android telephony 通过socket 进行连接。每个RIL 实例针对各自的SIM 卡提供专用的通信通道来进行modem 侧的通信服务。

(2)无线电仲裁管理者(Radio Service Arbitration Manager),这是实现双网双待方案中新增加的模块,主要用来为每个RIL 实例进行语音和短消息业务的仲裁,数据服务的仲裁由MODEM 来进行。

(3)RIL 事件分配机(RIL Event Dispatcher),用于分配RIL请求及AMSS 事件到通信服务管理模块进行的处理。

(4)无线电服务管理者(Radio Service Manager),Android 通话应用首先需要通过子系统信息来从framework 层获得通话服务,然后每个SIM 卡子系统将会映射到一个特定的RIL 实例ID上,服务管理将使用RIL 实例的ID 来识别子系统ID 中DSS API的参数。

3. 3 Android 双网双待通话机制的实现

Android 系统电话服务的实现基础是RIL.在Android 单模状态下的RIL 同TI 等平台类似,均使用了Google 默认的参考接口,也就是通过打开modem 侧提供的串口或者USB 虚拟串口向modem 侧发送AT 指令的方式,进行实际的无线通信。比如,UI上层向RIL 层发送RIL_REQUEST_DIAL 请求,RIL 层在接收到该请求的时候,通过串口向modem 发送 AT*** 命令,发起呼叫,当然,最终真正实现通话的是modem 侧的功能,此时,与Android 就无关了。Android 平台RIL 与modem 的工作原理如图4 所示。

感人微小说全文免费阅读

雷神的种植技术

美丽小故事