一种异常通话处理方法及终端与流程

文档序号:12496077阅读:383来源:国知局
一种异常通话处理方法及终端与流程

本发明涉及通信技术领域,具体涉及一种异常通话处理方法及终端。



背景技术:

在安卓技术领域,通话过程中,当电话被挂断的情形下,不论是通话双方的任一一方挂断电话,都会具有电话挂断的处理过程,以其中一方终端为例,当发现电话挂断后,终端内的调制解调模块会上报通话状态变化给安卓系统的电话Telephony模块,而后会由Telephony模块向调制解调模块获取电话链路状态,按照协议会对正常的电话挂断原因进行处理,如挂断原因为正常挂断或者是拨号无效,此时会清除当前的电话链路,并将电话状态更新为空闲,最后由安卓系统的通话用户界面(UI,User Interface)就会关掉,完成电话挂断过程。

但是,在此过程中,除了正常挂断和拨号无效之外,实际获取到的可能是一些非协议标准的挂断异常,而这些原因在Telephony模块进行电话链路更新时会产生更新异常的情况,会导致通话UI模块无法获得正确的电话链路信息,会出现电话链路一直存在,但是通话UI不会关闭,Telephony模块也不会通知通话UI更新电话链路信息,导致通话UI不能关闭的状态一直存在,即便点击挂断图标也无法关闭通话UI,因为此时无线接口层已经没有电话链路存在,挂断命令的响应也会出现异常,从而无法进行电话的拨打,最终只能重启终端才能进行电话的拨打,而这种情形会使得用户体验糟糕。



技术实现要素:

本发明实施例提供了一种异常通话处理方法来解决现有在异常的电话挂断原因时无法关闭通话UI且无法接打电话的问题。

有鉴于此,本发明第一方面提供一种异常通话处理方法,该方法包括,

当接收到调制解调模块返回的第一电话链路信息查询请求的查询结果为挂断异常时,向调制解调模块发送第二电话链路信息查询请求;

在接收到所述第一电话链路信息查询请求的查询结果后,修改所述电话链路信息。

在一些实施例中,所述接收到调制解调模块返回的第一电话链路信息查询请求的查询结果之前,所述方法还包括:

获取电话链路信息;

当根据所述电话链路信息确定对应的电话链路不存在时,向所述调制解调模块发送第一电话链路信息查询请求。

在一些实施例中,在获取电话链路信息之前,所述方法还包括:

接收调制解调模块上报的电话状态变化事件。

在一些实施例中,所述修改所述电话链路信息包括:

将所述电话链路信息修改为未连接;

将电话状态修改为空闲。

在一些实施例中,所述修改所述电话链路信息之后,所述方法还包括:

通知通话UI模块根据修改后的电话链路信息关闭通话UI。

在一些实施例中,所述查询结果为正常挂断、拨号无效或挂断异常。

本发明实施例第二方面还提供一种终端,包括:

查询模块,用于当接收到调制解调模块返回的第一电话链路信息查询请求的查询结果为挂断异常时,向调制解调模块发送第二电话链路信息查询请求;

处理模块,用于在接收到所述第一电话链路信息查询请求的查询结果后,修改所述电话链路信息。

在一些实施例中,所述处理模块还用于,获取电话链路信息;

所述查询模块还用于,当根据所述电话链路信息确定对应的电话链路不存在时,向所述调制解调模块发送第一电话链路信息查询请求。

在一些实施例中,所述终端还包括:

收发模块,用于接收调制解调模块上报的电话状态变化事件。

在一些实施例中,所述处理模块具体用于:

将所述电话链路信息修改为未连接;

将电话状态修改为空闲。

在一些实施例中,所述处理模块还用于:

通知通话UI模块根据修改后的电话链路信息关闭通话UI。

在一些实施例中,所述查询结果为正常挂断、拨号无效或挂断异常。

从以上技术方案可以看出,本发明实施例具有以下优点:本发明实施例中,在第一电话链路信息查询请求的查询结果为挂断异常时,即非正常挂断或者拨号失败的原因时,会向调制解调模块发送第二电话链路查询请求,在接收到第二电话链路查询请求的响应后,会对电话链路信息进行修改,随后便能够通知通话UI模块该电话链路信息已更新,使得通话UI模块会获取更新的电话链路信息并对自身的电话链路信息进行更新,从而使得通话UI模块能够根据电话链路信息的改变执行正确的流程,如电话链路信息为未连接,则关闭通话UI。

附图说明

图1是本发明实施例的应用框架示意图;

图2是本发明实施例的异常通话处理方法的一个实施例图。

图3是本发明实施例的终端的一个实施例图。

具体实施方式

本发明实施例提供了一种异常通话处理方法,能够通过在电话挂断异常时,再次向调制解调模块发送电话链路查询请求,并对电话链路信息进行修改,并通知通话UI模块,使得通话UI模块能够实现正常挂断,而不用重启终端。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。

以下分别进行详细说明。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。

请参阅图1,图1是本发明实施例的应用框架示意图,包括应用处理模块和基带处理模块,其中,虚线之下为系统核心层,虚线之上为应用和应用框架层,应用处理模块包括安卓系统的系统核心以及在该核心之上的用户空间,在该用户空间内,从下至上依次设有无线接口层(RIL,Radio Interface Layer),Telephony框架和电话应用,而在基带处理模块内则设有调制解调器接口、调制解调器驱动和调制解调器堆栈等单元,以电话挂断为例,在电话应用,如通话UI点击挂断时,该命令会首先传送到Telephony框架,由Telephony框架通过RIL发送电话链路查询请求,该消息首先会抵达系统核心,再由系统核心发送至基带处理模块内的调制解调单元,由该调制解调单元返回响应,该响应可以是正常挂断或者拨号无效或者两者之外的挂断异常,该原因会通过RIL返回给Telephony框架,由Telephony框架根据该原因进行相应的处理,如为正常挂断,则Telephony框架会将自身的电话链路信息修改为未连接,并将电话状态修改为空间,并通知电话应用的通话UI,使得通话UI获取该电话链路信息和电话状态,并关闭通话UI。

下面对本发明实施例的异常通话处理方法进行介绍,请参阅图2,图2是本发明实施例的异常通话处理方法的一个实施例图,该方法可包括:

201、应用处理模块接收基带处理模块内的调制解调模块上报的通话状态变化事件。

其中,该通话状态变化事件仅包含电话状态已经改变这一信息,并不包含通话状态变化为何种状态,此外,该步骤并非本实施例中的必需步骤。

202、应用处理模块获取电话链路信息;

其中,该电话链路信息是存于该应用处理模块内的电话链路信息,如可以是通过内部的Telephony模块去获取位于Telephony模块内的电话链路信息。

203、判断该电话链路信息对应的电话链路是否存在,若存在,则执行步骤209,若不存在,则执行步骤204。

204,应用处理模块向调制解调模块发送第一电话链路查询请求;

205,判断调制解调模块返回的第一电话链路查询请求的查询结果为正常挂断或拨号无效亦或是挂断异常,若是正常挂断或拨号无效,则执行步骤208,若是挂断异常,则执行步骤206。

其中,该挂断异常指的是除了正常挂断和拨号无效之外的原因,出现这种挂断异常的情况有。如网络质量差、通话过程中突然进入无服务区域等都有可能出现挂断异常,发现挂不断的原因都是Telephony模块的电话链路更新不正确,一直处于挂断中(disconnecting)的状态导致。

206、应用处理模块向调制解调模块发送第二电话链路查询请求。

其中,安卓系统查询电话挂断的应用程序接口(API,Application Interface)为获取最近电话状态失败原因(getLastCallFailCause)。

207、应用处理模块接收第二电话链路查询请求的查询结果。

其中,待该API的查询结果返回后,无论该查询结果是什么,均会执行步骤208。

208、应用处理模块修改电话链路信息。

其中,修改电话链路信息可以是将该电话链路信息修改为未连接(disconnected),且修改之后,还会将电话状态修改为空闲,再完成这两步修改后,便会通知通话UI。

209、通知通话UI模块所述电话链路信息已更新。

其中,完成步骤208后,便会将电话链路已更新的状态发送给通话UI,使得通话UI能够及时获取电话链路信息的更新情况,并进行相应的处理,该通话UI是在应用处理模块内是运行在Telephony模块之上的应用,是一种被动式的处理机制,即仅能在Telephony模块通知到该通话UI时,才会进行电话链路信息的更新。

210,挂断过程处理结束。

需要说明的是,步骤206再次发送电话链路查询请求后,并不会关注调制解调模块返回的响应的内容是什么,便会继续执行步骤208。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上面对本发明实施例的异常通话处理方法进行了介绍,下面对本发明实施例的终端进行介绍,请参阅图3,图3是本发明实施例的终端的一个实施例图,该终端可包括:

查询模块301,用于当接收到调制解调模块返回的第一电话链路信息查询请求的查询结果为挂断异常时,向调制解调模块发送第二电话链路信息查询请求;

处理模块302,用于在接收到第一电话链路信息查询请求的查询结果后,修改所述电话链路信息。

其中,该查询模块301能够执行图2所示实施例中的步骤204和步骤206。该处理模块302能执行图2所示实施例中的步骤202、步骤203、步骤205、步骤208和步骤209。

可选的,所述处理模块302还用于,获取电话链路信息;

所述查询模块301还用于,当根据所述电话链路信息确定对应的电话链路不存在时,向所述调制解调模块发送第一电话链路信息查询请求。

其中,该处理模块302和查询模块301的功能可参见图2所示实施例,此处不在赘述。

可选的,所述终端还包括:

收发模块303,用于接收调制解调模块上报的通话状态变化事件。

其中,该收发模块303能够执行图2所示实施例中步骤201和步骤207。

可选的,所述处理模块302具体用于:

将所述电话链路信息修改为未连接;

将电话状态修改为空闲。

其中,该处理模块302和查询模块301的功能可参见图2所示实施例,此处不在赘述。

可选的,所述处理模块302还用于:

通知通话UI模块根据修改后的电话链路信息关闭通话UI。

其中,该处理模块302和查询模块301的功能可参见图2所示实施例,此处不在赘述。

可选的,所述查询结果为正常挂断、拨号无效或挂断异常。

其中,该处理模块302和查询模块301的功能可参见图2所示实施例,此处不在赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行替换;而这些修改或者替换,并不使相应技术方案脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1