一种安卓系统的多待终端及终端实现多待的方法

文档序号:7856064阅读:257来源:国知局
专利名称:一种安卓系统的多待终端及终端实现多待的方法
技术领域
本发明涉及通信技术领域,尤其涉及一种安卓系统的多待终端及安卓系统的终端实现多待的方法。
背景技术
终端(例如手机)中,Modem (调制解调器)用来与终端的电话系统通信,执行电话系统的实现电话功能的指令消息,以实现各种电话功能,例如Sms (短消息服务)、Mail (邮件)、Contacts (通讯录)等等功能。对于不同厂商生产的Modem,其支持的功能和使用的指令各不相同,为了兼容不同的Modem,基于And roid (安卓)平台的电话系统分为三部分,分别为各类电话应用部分,如Sms、Mail、Contacts等等;Phone Service (虚拟电话服务)部分,其核心由Phone实例实现,用于与Modem进行信息交互,实现电话应用的电话功能,以及实现对Modem的工作状态控制和维护,并将Modem的工作状态上报给电话应用;RIL(RadioInterface Layer,无线电接口层,是一个协议转换层)部分,RIL中的rild将上层Phone实例的电话管理功能指令转换为Modem可以识别的指令,从而实现上层Phone实例与Modem的通信。现有的基于Android平台的终端,能够实现双模单待,但无法实现双模双待。

发明内容
本发明的目的是提供一种安卓系统的多待终端及终端实现多待的方法,以实现安卓系统终端的多模多待、多卡多待。本发明的目的是通过以下技术方案实现的—种安卓系统的多待终端,包括至少两个调制解调器Modem模块,用于执行实现电话功能的指令消息,每个Modem模块对应一个电话Phone实例和一个协议转换守护进程;虚拟电话管理模块,用于在所述安卓系统启动后,调用每个Modem模块对应的Phone实例和协议转换守护进程;电话功能实现模块,用于通过Phone实例的索引标识对应的Phone实例,和所述Phone实例对应的协议转换守护进程,与对应的Modem模块进行消息交互实现电话功能,与对应的Modem模块交互的消息中携带所述Phone实例的索引标识。一种安卓系统的终端实现多待的方法,所述终端包括至少两个调制解调器Modem模块,每个Modem模块对应一个电话Phone实例和一个协议转换守护进程,该方法包括在所述安卓系统启动后,调用每个Modem模块对应的Phone实例和协议转换守护进程;当需要实现特定的电话功能时,通过Phone实例的索引标识对应的Phone实例,和所述Phone实例对应的协议转换守护进程,与对应的Modem模块进行消息交互实现电话功能,与对应的Modem模块交互的消息中携带所述Phone实例的索引标识。
由于终端中设置有至少两个Modem模块,且每个Modem模块分别有对应的Phone实例和对应的rild,因此能够支持多个Modem模块同时在网工作,可以实现多模多待、多卡多待。


图I为本发明实施例提供的终端结构示意图;图2为本发明实施例提供的电话系统示意图;图3为本发明实施例提供的一种方法流程图;
图4为本发明实施例提供的另一种方法流程图。
具体实施例方式本发明实施例提供一种安卓系统的双待终端,其实现结构如图I所示,具体实现结构如下至少两个Modem模块10、虚拟电话管理模块20、电话功能实现模块30。其中,Modem模块10用于执行实现电话功能的指令消息,每个Modem模块10对应一个Phone实例和一个协议转换守护进程。也就是说,对于不同的Modem模块,Modem模块、Phone实例、协议转换守护进程之间为一一对应的关系。本发明中,协议转换守护进程即rild守护进程。虚拟电话管理模块20用于在安卓系统启动后,调用每个Modem模块对应的Phone实例和协议转换守护进程。电话功能实现模块30用于,通过Phone实例的索引标识对应的Phone实例,和该Phone实例对应的协议转换守护进程,与对应的Modem模块进行消息交互实现电话功能,与对应的Modem模块交互的消息中携带所述Phone实例的索引标识。其中,电话功能可以但不仅限于短信功能、电话呼入/呼出功能、邮件功能、对Modem支持的电话卡进行数据操作(如修改该电话卡的电话簿)等等功能。由于终端中设置有至少两个Modem模块,且每个Modem模块分别有对应的Phone实例和对应的rild守护进程。现有的安卓系统的终端,电话系统中仅有一个Phone实例。而本发明实施例,每个Modem模块都对应有一个Phone实例,为了区分不同的Modem模块对应的Phone实例,引入了 Phone实例的Index (索引)标识。电话应用可以通过Phone实例的Index标识选择Phone实例,并通过选择的Phone实例和对应的rild,控制对应的Modem模块实现相应的电话功能。因此,本发明实施例能够支持多个Modem模块同时在网工作,实现多待终端。其中,每个Modem模块可以支持单一的网络制式,也可以支持两个甚至两个以上的网络制式。如果一个Modem模块可以支持多个网络制式,其具体在哪个网络制式下工作取决于连接的电话卡(如SIM卡)。如果终端中各个Modem模块工作在相同的网络制式下,则可以实现多卡多待终端。如果终端中各个Modem模块工作在不同的网络制式下,则可以实现多模多待终端。其中,Modem模块可以支持的网络制式有很多种,例如GSM网络制式,CDMA网络制式,WCDMA网络制式等。
较佳地,电话功能实现模块30包括电话应用子模块和虚拟电话服务子模块。其中,电话应用子模块具体用于,向虚拟电话服务子模块发送实现电话功能的指令消息;如果该指令消息中包括Phone实例的索引标识,虚拟电话服务子模块用于,根据所述索引标识确定对应的Phone实例,将所述指令消息通过对应的Phone实例、与所述Phone实例对应的协议转换守护进程发送给对应的Modem模块,由所述对应的Modem模块执行所述指令消息;以及接收对应的Modem模块返回的响应消息,在所述响应消息中添加所述Phone实例的索引标识后发送给所述电话应用子模块。如果电话应用是针对原始Android平台实现的,不支持多Phone实例,则这样的电话应用发起的指令消息中不包含Phone Index标识。为了 兼容这样的电话应用,可以预先设定默认的Phone实例,选择预定的默认Phone实例,以便通过选择的Phone实例和对应的rild向对应的Modem模块发送管理控制指令。相应的,如果该指令消息中不包括Phone实例的索引标识,虚拟电话服务子模块还用于,选择预先设置的默认Phone实例,将所述指令消息通过默认Phone实例和对应的协议转换守护进程发送给对应的Modem模块,并通过所述默认Phone实例和对应的协议转换守护进程接收对应的Modem模块返回的响应消息,将所述响应消息发送给所述电话应用子模块。上述的电话应用子模块具体可以是安卓平台的电话系统中的各个电话应用。虚拟电话服务子模块具体可以是安卓平台的电话系统中的Phone Service。对于Modem模块的工作状态,也可以通过Phone实例的Index标识加以区分。较佳地,电话功能实现模块30还可以包括电话注册服务子模块。相应的,虚拟电话服务子模块还用于,在获取的各个Modem模块的工作状态信息中添加各个Modem模块对应的Phone实例的索引标识后,通过电话注册服务子模块的扩展接口将各个Modem模块的工作状态信息发送给所述电话注册服务子模块。电话注册服务子模块用于,将获取的各个Modem模块的工作状态信息发送给所述电话应用子模块。较佳地,虚拟电话服务子模块还可以用于,将默认Phone实例对应的Modem模块的工作状态信息通过所述电话注册服务子模块的原始发送给所述电话注册服务子模块。其中,Modem模块的工作状态可以但不仅限于网络状态,如本地注册、漫游注册、无网络等等,通话状态,如空闲、来电、去电、振铃等等。其中,电话注册服务子模块具体可以是安卓平台的电话系统中的TekphonyRegistry Service (电话注册服务)。较佳地,每个Modem模块与对应的rild守护进程之间可以但不仅限于通过以下任一接口进行通信UART (Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置)接口、USB (Universal Serial BUS,通用串行总线)接口、SHM接口。基于同样的发明构思,本发明实施例还提供一种安卓系统的终端实现多待的方法,该终端包括至少两个调制解调器Modem模块,每个Modem模块对应一个电话Phone实例和一个协议转换守护进程,该方法包括在所述安卓系统启动后,调用每个Modem模块对应的Phone实例和协议转换守护进程;当需要实现特定的电话功能时,通过Phone实例的索引标识对应的Phone实例,和所述Phone实例对应的协议转换守护进程,与对应的Modem模块进行消息交互实现电话功能,与对应的Modem模块交互的消息中携带所述Phone实例的索引标识。较佳地,与对应的Modem模块进行消息交互实现电话功能的具体实现方式可以是电话应用向所述虚拟电话服务发送实现电话功能的指令消息;如果所述指令消息中包括Phone实例的索引标识,虚拟电话服务根据所述索引标识确定对应的Phone实例,将所述指令消息通过对应的Phone实例、与所述Phone实例对应的协议转换守护进程发送给对应的Modem模块,由所述对应的Modem模块执行所述指令消息;虚拟电话服务接收对应的Modem模块返回的响 应消息,在所述响应消息中添加所述Phone实例的索引标识后发送给所述电话应用。如果所述指令消息中不包括Phone实例的索引标识,该方法还包括所述虚拟电话服务选择预先设置的默认Phone实例,将所述指令消息通过默认Phone实例和对应的协议转换守护进程发送给对应的Modem模块,并通过所述默认Phone实例和对应的协议转换守护进程接收对应的Modem模块返回的响应消息,将所述响应消息发送给所述电话应用,所述默认Phone实例对应的Modem模块为指定的Modem模块。较佳地,本发明实施例提供的方法还可以包括虚拟电话服务在获取的各个Modem模块的工作状态信息中添加各个Modem模块对应的Phone实例的索引标识后,通过电话注册服务的扩展接口将各个Modem模块的工作状态信息发送给所述电话注册服务;所述电话注册服务将获取的各个Modem模块的工作状态信息发送给所述电话应用。较佳地,本发明实施例提供的方法还可以包括将默认Phone实例对应的Modem模块的工作状态信息通过所述电话注册服务的原始发送给所述电话注册服务。 下面将结合具体的应用实施例,对本发明进行详细说明。Android平台上,Modem与电话系统之间的信息交互需要rild进行协议转换。具体的,将来自Phone实例的信息转换为Modem可以识别的命令格式(例如AT(—种调制解调器命令语言)命令格式)后发送给Modem,将来自Modem的信息转换为Phone实例可以识别的命令格式后发送给Phone实例。如图2所示的电话系统中,有第一 Modem和第二 Modem。每个Modem分别对应一个rild守护进程和一个Phone实例。具体的,第一 Modem对应第一 rild守护进程和第一Phone实例,第二 Modem对应第二 rild守护进程和第二 Phone实例。内核层通过UART、USB、或SHM等链接方式提供电话应用对每个Modem的访问通路,具体采用哪种链接方式,可以根据布板情况以及AP (接入点)的硬件接口使用情况决定。Rild层中,由rild守护进程实现协议转换,rild守护进程具体通过vendor-ril.so实现。Vendor-ril. so是针对每个Modem实现的命令交互处理的动态链接库,rild收到Phone实例发送的指令消息后,由vendor-ril. so将指令消息转换为相应Modem可以识别命令格式(如AT命令或其它格式的指令),通过内核提供的访问通路发送给对应的Modem,并将对应的Modem的执行结果返回给对应的Phone实例。Frame Work (架构)层中,Phone App是一个进程,用于引导和实例化Phone (电话)、Phone Service (电话服务)等。Phone Service用于维护Phone实例的状态,并提供与电话应用的访问接口。Phone实例用于与对应的Modem进行通信,实现控制和管理对应的Modem。具体的,在Phone App启动时,通过工程模式创建第一 Phone实例来维护第一MODEM的状态和发送控制指令,仓Il建第二 Phone实例来维护第二 Modem的状态和发送控制指令。每个Phone实例通过相应的rild守护进程提供的socket (套接字)接口与MODEM通信,发送指令给MODEM完成相关功能并且获取MODEM的工作状态。如果是GSM Modem,则对应的Phone实例为GSM Phone实例。如果是CDMA Modem,则对应的Phone实例为CDMA Phone实例。如果是WCDMA Modem,则对应的Phone实例为WCDMA Phone实例。基于图2所示的电话系统,电话应用可以选择使 用不同的MODffl实现不同的电话功能,例如通过不同MODEM发起呼叫、操作不同电话卡的内容等。具体可以通过Phone实例的index标识来允许电话应用指定所使用的Phone实例。同时,考虑到现有的电话应用都是针对单模电话系统实现的,对于这类电话应用,其发送的指令中不指定Phone的index标识,可以默认其使用第一 Phone实例(此处仅为举例,也可以将第二 Phone实例作为默认的Phone实例),这样就能够很好的兼容各种下载的应用程序。另外,现有的电话系统平台中,MODEM的工作状态上报是通过Telephony Registry Service实现的,其中的参数并没有考虑双待的情况,在双待情况下会造成状态的混乱和相互覆盖。所以在Tekphony RegistryService中同样扩展了 Phone的index标识,用来区分不同的Phon实例对应的Modem的工作状态。同时将预先设定的默认Phone实例上报的Modem的工作状态通过原始平台定义上报,用来兼容单待电话应用的需求。具体的,提供一个扩展Telephony Registry Service接口,将第一 Phone实例待上报的第一 Modem状态消息中添加第一 Phone实例的Index标识,将第二 Phone实例待上报的第二 Modem状态消息中添加第二 Phone实例的Index标识。将添加了 Phone实例的Index标识的第一 Modem状态消息和第二 Modem状态消息通过扩展的Telephony Registry Service接口上报给电话应用。另外,将默认Phone实例待上报的Modem状态消息通过Telephony Registry Service的原始平台接口上报给电话应用。其中,Modem状态消息中包含Modem的工作状态。基于图2所示的电话系统,一种通过第一Modem发起呼叫的方法如图3所示,具体包括如下操作步骤100、电话应用向Phone Service发送呼叫管理控制的指令消息,该呼叫管理控制的指令消息用于发起呼叫,其中包含有第一 Phone实例的Index标识。步骤110、Phone Service根据呼叫管理控制的指令消息中包含的第一 Phone实例的Index标识,将该呼叫管理控制的指令消息发送给第一 Phone实例;步骤120、第一 Phone实例通过第一 rild守护进程提供的socket接口将该呼叫管理控制的指令消息发送给第一 rild守护进程;步骤130、第一 rild守护进程中的vendor-ril. so将呼叫管理控制的指令消息转换为AT命令后通过内核层提供的访问通路,将AT命令发送给第一 Modem ;步骤140、第一 Modem根据接收到的AT命令,发起呼叫,并将处理结果(即响应消息)通过内核层提供的访问通路发送给第一 rild守护进程;
步骤150、第一 rild守护进程中的vendor-ril. so将处理结果转换为第一 Phone实例可以识别的格式后,通过socket接口发送给第一 Phone实例;步骤160、第一 Phone实例在第一 Modem的处理结果中添加第一 Phone实例的index标识后通过Phone Service提供的接口上报给电话应用。基于图2所不的电话系统,一种通过第一 Modem呼入的电话业务处理方法如图4所示,具体包括如下操作步骤200、第一 Modem在检测到来电呼叫后,将“来电”状态信息通过内核层提供的访问通路发送给第一 rild守护进程;步骤210、第一 rild中的vendor-ril. so将“来电”状态信息转换为第一 Phone实例可以识别的格式后,通过socket接口发送给第一 Phone实例;步骤220、第一 Phone实例生成来电消息并发送给Phone Service,该来电消息中包含“来电”状态信息;步骤230、Phone Service将第一 Phone实例的来电消息中添加第一 Phone实例的Index标识后通过Telephony Registry Service的原始平台接口和扩展接口上报给电话应用。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种安卓系统的多待终端,其特征在于,包括 至少两个调制解调器Modem模块,用于执行实现电话功能的指令消息,每个Modem模块对应一个电话Phone实例和一个协议转换守护进程; 虚拟电话管理模块,用于在所述安卓系统启动后,调用每个Modem模块对应的Phone实例和协议转换守护进程; 电话功能实现模块,用于通过Phone实例的索引标识对应的Phone实例,和所述Phone实例对应的协议转换守护进程,与对应的Modem模块进行消息交互实现电话功能,与对应的Modem模块交互的消息中携带所述Phone实例的索引标识。
2.根据权利要求I所述的多待终端,其特征在于,所述电话功能实现模块包括电话应用子模块和虚拟电话服务子模块 所述电话应用子模块用于,向所述虚拟电话服务子模块发送实现电话功能的指令消息; 如果所述指令消息中包括Phone实例的索引标识,所述虚拟电话服务子模块用于,根据所述索引标识确定对应的Phone实例,将所述指令消息通过对应的Phone实例、与所述Phone实例对应的协议转换守护进程发送给对应的Modem模块,由所述对应的Modem模块执行所述指令消息;以及接收对应的Modem模块返回的响应消息,在所述响应消息中添加所述Phone实例的索引标识后发送给所述电话应用子模块。
3.根据权利要求2所述的多待终端,其特征在于,如果所述指令消息中不包括Phone实例的索引标识,所述虚拟电话服务子模块还用于,选择预先设置的默认Phone实例,将所述指令消息通过默认Phone实例和对应的协议转换守护进程发送给对应的Modem模块,并通过所述默认Phone实例和对应的协议转换守护进程接收对应的Modem模块返回的响应消息,将所述响应消息发送给所述电话应用子模块。
4.根据权利要求2或3所述的双待终端,其特征在于,所述电话功能实现模块还包括电话注册服务子模块; 所述虚拟电话服务子模块还用于,在获取的各个Modem模块的工作状态信息中添加各个Modem模块对应的Phone实例的索引标识后,通过所述电话注册服务子模块的扩展接口将各个Modem模块的工作状态信息发送给所述电话注册服务子模块; 所述电话注册服务子模块用于,将获取的各个Modem模块的工作状态信息发送给所述电话应用子模块。
5.根据权利要求4所述的双待终端,其特征在于,所述虚拟电话服务子模块还用于,将默认Phone实例对应的Modem模块的工作状态信息通过所述电话注册服务子模块的原始发送给所述电话注册服务子模块。
6.一种安卓系统的终端实现多待的方法,其特征在于,所述终端包括至少两个调制解调器Modem模块,每个Modem模块对应一个电话Phone实例和一个协议转换守护进程,该方法包括 在所述安卓系统启动后,调用每个Modem模块对应的Phone实例和协议转换守护进程; 当需要实现特定的电话功能时,通过Phone实例的索引标识对应的Phone实例,和所述Phone实例对应的协议转换守护进程,与对应的Modem模块进行消息交互实现电话功能,与对应的Modem模块交互的消息中携带所述Phone实例的索引标识。
7.根据权利要求6所述的方法,其特征在于,与对应的Modem模块进行消息交互实现电话功能,具体包括 电话应用向所述虚拟电话服务发送实现电话功能的指令消息; 如果所述指令消息中包括Phone实例的索引标识,虚拟电话服务根据所述索引标识确定对应的Phone实例,将所述指令消息通过对应的Phone实例、与所述Phone实例对应的协议转换守护进程发送给对应的Modem模块,由所述对应的Modem模块执行所述指令消息; 所述虚拟电话服务接收对应的Modem模块返回的响应消息,在所述响应消息中添加所述Phone实例的索引标识后发送给所述电话应用。
8.根据权利要求7所述的方法,其特征在于,如果所述指令消息中不包括Phone实例的索引标识,该方法还包括 所述虚拟电话服务选择预先设置的默认Phone实例,将所述指令消息通过默认Phone实例和对应的协议转换守护进程发送给对应的Modem模块,并通过所述默认Phone实例和对应的协议转换守护进程接收对应的Modem模块返回的响应消息,将所述响应消息发送给所述电话应用,所述默认Phone实例对应的Modem模块为指定的Modem模块。
9.根据权利要求7或8所述的方法,其特征在于,该方法还包括 所述虚拟电话服务在获取的各个Modem模块的工作状态信息中添加各个Modem模块对应的Phone实例的索引标识后,通过电话注册服务的扩展接口将各个Modem模块的工作状态信息发送给所述电话注册服务; 所述电话注册服务将获取的各个Modem模块的工作状态信息发送给所述电话应用。
10.根据权利要求9所述的方法,其特征在于,该方法还包括将默认Phone实例对应的Modem模块的工作状态信息通过所述电话注册服务的原始发送给所述电话注册服务。
全文摘要
本发明公开了一种安卓系统的多待终端及终端的多待实现方法。其终端包括至少两个Modem模块,每个Modem模块对应一个电话Phone实例和一个协议转换守护进程;虚拟电话管理模块在安卓系统启动后,调用每个Modem模块对应的Phone实例和协议转换守护进程;电话功能实现模块通过Phone实例的索引标识对应的Phone实例,和对应的协议转换守护进程,与对应的Modem模块进行消息交互,消息中携带Phone实例的索引标识。由于终端中设置有至少两个Modem模块,且每个Modem模块分别有对应的Phone实例和对应的rild,因此能够支持多个Modem模块同时在网工作,可以实现多模多待、多卡多待。
文档编号H04W88/02GK102769937SQ20121024644
公开日2012年11月7日 申请日期2012年7月16日 优先权日2012年7月16日
发明者徐国庆 申请人:青岛海信移动通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1