一种基于Android的业务处理方法和装置

申请号 CN201010123923.8 申请日 2010-03-10 公开(公告)号 CN101808270B 公开(公告)日 2016-03-30
申请人 华为终端有限公司; 发明人 李吉友;
摘要 本 发明 实施例 提供一种基于Android的业务处理方法和装置。本发明实施例所提供的方案能够根据具体业务的业务类型创建对应的PDP,使得Android平台对PDP的支持由一个增强为多个,从根本上避免了现有Android平台在进行业务处理时,当处于激活态的PDP不能处理一待处理业务类型时,中断当前其正在处理的业务,去激活当前的PDP,重新创建新的PDP进行业务处理,待业务处理完成后,再恢复原PDP的过程,实现了Android平台中多种不同类型的业务并行处理,极大地提升了用户体验。
权利要求

1.一种基于Android的业务处理方法,其特征在于,包括:
系统上电,根据系统默认的访问节点名称APN的配置激活对应的分组数据协议PDP;
接收到第一业务请求时,确定所述第一业务的业务类型;
根据所述第一业务的业务类型判断当前处于激活态的分组数据协议PDP能否处理所述第一业务;
当前处于激活态的PDP不能处理所述第一业务时,根据所述第一业务的业务类型创建第一PDP,包括:根据所述第一业务的业务类型确定对应的第一APN;根据所述第一APN的配置激活对应第一PDP;
通知所述第一业务对应的应用,第一PDP被激活,通过所述第一PDP处理所述第一业务;
建立所述第一PDP与其所对应的业务类型的连接通道,以使该类型的业务数据能够通过所述第一PDP传输;
建立所述第一PDP与其所对应的业务类型的连接通道包括:
对于有网关的APN,将所述第一PDP所对应的APN配置的网关地址增加至当前系统路由表中;
或;对于没有网关的APN,将所述第一业务对应的应用创建的socket与所述第一PDP对应的网络接口进行绑定。
2.根据权利要求1所述的方法,其特征在于,还包括:
当前处于激活态的PDP能够处理所述第一业务时,利用对应的处于激活态的PDP处理所述第一业务。
3.一种基于Android的业务处理装置,其特征在于,包括:
确定单元,用于在接收到第一业务请求时,确定所述第一业务的业务类型;
判断单元,用于根据所述第一业务的业务类型判断当前处于激活态的分组数据协议PDP能否处理所述第一业务,所述当前处于激活态的PDP为系统上电时,根据系统默认的访问节点名称APN的配置激活对应的PDP;
第一处理单元,用于当前处于激活态的PDP不能处理所述第一业务时,根据所述第一业务的业务类型创建第一PDP,包括:根据所述第一业务的业务类型确定对应的第一APN;
根据所述第一APN的配置激活对应第一PDP;
通知单元,用于通知所述第一业务对应的应用,通过所述第一PDP处理所述第一业务;
连接单元,用于建立所述第一PDP与其所对应的业务类型的连接通道,以使该类型的业务数据能够通过所述第一PDP传输;
对于有网关的APN,所述连接单元包括:
第一获取子单元,用于获取所述第一PDP所对应的APN配置的网关地址;
增加子单元,用于将所述网关地址增加至当前系统路由表中;
或;
对于没有网关的APN,所述连接单元包括:
第二获取子单元,用于获取所述第一业务对应的应用创建的socket;
定子单元,用于将所述socket与所述第一PDP对应的网络接口进行绑定。
4.根据权利要求3所述的装置,其特征在于,还包括:
第二处理单元,用于当前处于激活态的PDP能够处理所述第一业务时,利用对应的处于激活态的PDP处理所述第一业务。

说明书全文

一种基于Android的业务处理方法和装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种基于Android的业务处理方法和装置。

背景技术

[0002] Android是新一代的智能平台,越来越多的移动终端使用Android作为操作系统,使用Anddroid系统的移动终端的用户也与日俱增,Android系统的移动终端提供了强大的网络功能,使得用户能够非常方便地访问internet。
[0003] Android系统中有两个基本概念需要首先介绍一下,一个是APN,另一个是PDP。其中:
[0004] APN:为访问节点名称,完整名称为Access Point Name,一个网关GPRS支持节点(GGSN,Gateway GPRS Support Node)和外部网络的逻辑名称,激活一个PDP时需要相应的APN配置。
[0005] PDP:为分组数据协议,完整名称为packet data protocol,一个PDP表示一个移动终端与网络之间的一个交互通道,一个PDP使得移动终端拥有一个IP地址,并在移动终端内对应一个网络接口
[0006] 发明人通过研究发现,目前,使用Android系统的移动终端不支持在进行网络相关的业务时,同时使用多个APN,即同一个时刻,使用Android系统的移动终端中只有一个APN处于被使用状态,相应地,同一个时刻,使用Android系统的移动终端中只有一个PDP存在。如果当前存在于Android系统的移动终端的APN为一个针对专用业务的APN,例如专针对internet业务的APN,那么其对应的PDP也只能处理internet业务,如果该移动终端正在处理internet业务时,收到一个彩信业务的处理请求时,目前Android系统上的做法先将当前处于激活态的,处理internet业务的PDP去激活(deactive),再根据能够处理彩信业务的APN的配置激活能够处理彩信业务的PDP,等彩信业务的处理结束后,再恢复原来处理internet业务的PDP。显然,现有Android系统中,专用APN对应的PDP在处理一业务时,遇到不同的业务类型的处理请求时,需要中断当前业务的处理过程才能处理新业务的处理流程极大地影响了原业务的处理,用户体验受到很大的影响。

发明内容

[0007] 有鉴于此,本发明实施例提供一种基于Android的业务处理方法和装置,从根本上改变现有Android系统的业务处理流程,在处理新业务的同时保证原有业务的正常进行。
[0008] 为实现上述目的,本发明实施例提供了如下技术方案:
[0009] 一种基于Android的业务处理方法,包括:
[0010] 系统上电,根据系统默认的访问节点名称APN的配置激活对应的分组数据协议PDP;
[0011] 接收到第一业务请求时,确定所述第一业务的业务类型;
[0012] 根据所述第一业务的业务类型判断当前处于激活态的分组数据协议PDP能否处理所述第一业务;
[0013] 当前处于激活态的PDP不能处理所述第一业务时,根据所述第一业务的业务类型创建第一PDP;
[0014] 通知所述第一业务对应的应用,第一PDP被激活,通过所述第一PDP处理所述第一业务。
[0015] 一种基于Android的业务处理装置,包括:
[0016] 确定单元,用于在接收到第一业务请求时,确定所述第一业务的业务类型;
[0017] 判断单元,用于根据所述第一业务的业务类型判断当前处于激活态的分组数据协议PDP能否处理所述第一业务,所述当前处于激活态的PDP为系统上电时,根据系统默认的访问节点名称APN的配置激活对应的PDP;
[0018] 第一处理单元,用于当前处于激活态的PDP不能处理所述第一业务时,根据所述第一业务的业务类型创建第一PDP;
[0019] 通知单元,用于通知所述第一业务对应的应用,通过所述第一PDP处理所述第一业务。
[0020] 可见,本发明实施例提供的方案能够根据具体业务的业务类型创建对应的PDP,使得Android平台对PDP的支持由一个增强为多个,从根本上避免了现有Android平台在进行业务处理时,当处于激活态的PDP不能处理一待处理业务类型时,中断当前其正在处理的业务,去激活当前的PDP,重新创建新的PDP进行业务处理,待业务处理完成后,再恢复原PDP的过程,实现了Android平台中多种不同类型的业务并行处理,极大地提升了用户体验。附图说明
[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1为本发明一实施例所提供的方法的流程图
[0023] 图2为本发明另一实施例所提供的方法的流程图;
[0024] 图3为本发明一实施例所提供的方法的一过程的流程图;
[0025] 图4为本发明一实施例所提供的一装置的结构示意图。

具体实施方式

[0026] 为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0027] 参见图1,本发明一实施例所提供的一种基于Android的业务处理方法包括:
[0028] S101、接收到第一业务请求时,确定所述第一业务的业务类型;
[0029] 本发明实施例中,用第一业务来描述当前Android系统内的任意一个业务。用第一业务请求来描述任意一个需要执行的业务所对应的业务请求。
[0030] 在Android系统中,每个业务都有对应的业务类型。以与网络相关的业务为例,例如,浏览网页或者从网页上观看视频等等都属于是internet业务;而接收或者发送彩信则属于彩信业务。在Android系统中,internet业务的业务类型为default,彩信业务的业务类型为MMS。
[0031] S102、根据所述第一业务的业务类型判断当前处于激活态的PDP能否处理所述第一业务;
[0032] S103,当前处于激活态的PDP不能处理所述第一业务时,根据所述第一业务的业务类型创建第一PDP;
[0033] 本发明实施例中,用第一PDP描述新创建的PDP。
[0034] 进一步地,根据所述第一业务的业务类型创建第一PDP包括:
[0035] 根据第一业务的业务类型确定对应的第一APN;
[0036] 根据所述第一APN的配置激活对应第一PDP。
[0037] 通过背景技术中对PDP的介绍可以知道,一个PDP上下文表示一个移动终端与网络之间的一个交互通道,一个PDP上下文使得移动终端拥有一个IP地址,并在移动终端内对应一个网络接口。PDP是根据APN的配置激活的。PDP所能够处理的业务类型是通过APN配置决定的。APN的配置包括APN,proxy,port,user name,password,APN type,其中:APN是该APN的名称,proxy和port是网关地址和端口号,若一个APN配置了proxy和port,那么应用要通过该APN所配置的proxy和port与服务器交互,而不是直接与服务器交互。user name和password是使用该APN激活PDP时鉴权用的,若user name和password匹配不成功则APN无法成功激活PDP。APN type表示由该APN激活的PDP能处理的业务类型,例如,如果APN type为*或为空,则表示由该APN激活的PDP能处理任何类型的业务,如果APN type为MMS,则表示由该APN激活的PDP能处理彩信业务,如果APN type为,则表示由该APN激活的PDP能处理除MMS外的业务,例如internet相关的业务等等。
[0038] 例如,目前移动终端中被激活的PDP,其对应的APN type为default,那么如果该第一业务为彩信业务时,根据所述彩信业务的业务类型可以确定当前处于激活态的PDP不能处理所述第一业务,则需要根据所述第一业务的业务类型激活第一PDP。
[0039] S104、通知所述第一业务对应的应用,第一PDP被激活,通过所述第一PDP处理所述第一业务。
[0040] 当第一PDP创建成功后,就可以用所述第一PDP进行该类型的业务的处理了。
[0041] 目前,网络侧的服务器支持一个移动终端中同时具有多个处于激活态的PDP。当移动终端中同时具体多个处于激活态的PDP时,可以拥有多个IP地址,对应多个网络接口。
[0042] 实际应用中,如果根据所述第一业务的业务类型判定当前处于激活态的PDP能够处理所述第一业务时,利用对应的处于激活态的PDP处理所述第一业务即可。
[0043] 例如,当前处于激活态的PDP被其对应的APN配置为处理default类型的业务,而所述第一业务请求所请求的第一业务为通过网页观看视频的业务。该业务属于default类型,可以直接通过当前出于激活态的PDP进行处理,无需再创建新的PDP。
[0044] 本发明实施例所提供的方法能够根据具体业务的业务类型创建对应的PDP,使得Android平台对PDP的支持由一个增强为多个,从根本上避免了现有Android平台在进行业务处理时,当处于激活态的PDP不能处理一待处理业务类型时,中断当前其正在处理的业务,去激活当前的PDP,重新创建新的PDP进行业务处理,待业务处理完成后,再恢复原PDP的过程,实现了Android平台中多种不同类型的业务并行处理,极大地提升了用户体验。
[0045] 本发明一实施例中,可以利用Android平台Framework中的数据连接追中单元(DataConnectionTracker)实现图1所示的方法。
[0046] 参见图2,一应用Android系统的手机利用本发明实施例所提供的方法进行业务处理的过程包括:
[0047] S201、系统上电,根据系统默认的APN1的配置激活PDP1,并生成与PDP1对应的网络接口io1。
[0048] 所述系统即为该手机上的Android系统。本发明实施例中,该APN1的APN typ为default,该PDP1处理的业务类型为除MMS外的业务类型。
[0049] S202、手机用户利用PDP1通过io1网络接口访问流媒体视频时,DataConnectionTracker接收到彩信接收请求。
[0050] S203、DataConnectionTracker确定彩信接收业务的业务类型为MMS。
[0051] S204、DataConnectionTracker判断PDP1能否处理MMS类型的业务,如果可以,则利用PDP1处理业务,否则进入步骤S205。
[0052] 本发明实施例中,PDP1所能够处理的业务类型为除MMS外的业务类型,不能够处理MMS类型的业务,所以应该进入步骤S205。
[0053] S205、DataConnectionTracker判断当前系统中是否还有空闲的网络接口,如果有进入步骤S206,否则进入步骤S207。
[0054] S206、根据处理MMS类型业务的APN2的配置激活PDP2,即第一PDP,生成一个与PDP2对应的新的网络接口io2。
[0055] S207、去激活一个激活态的PDP,根据处理MMS类型业务的APN2的配置激活PDP2,即第一PDP,生成一个与PDP2对应的新的网络接口io2。
[0056] 通过背景技术中对PDP的介绍我们知道,每一个激活态的PDP对应一个网络接口。如果系统中的网络接口已经全部处于被使用状态,那么即使激活一个新的PDP,没有可用的网络接口,系统也无法通过激活的PDP进行业务数据的传递。所以实际应用中,当确定需要激活一个新的PDP时,要确认一下当前是否有空闲的网络接口,如果有则可以直接进入步骤S206根据APN的配置激活PDP2。但是,如果当前没有可用的网络接口,那么就需要如步骤S207所示,先去激活当前处于激活态的PDP,以释放一个网络接口,再根据APN2的配置激活PDP2,利用该被释放的网络接口实现PDP2的业务数据的传输。
[0057] 本发明实施例中,如果当前已激活的PDP中有APN type为default类型的PDP,则直接去激活该PDP;否则,则可以根据事先制定的APN type优先级来选择一个PDP进行去激活处理。一旦能去激活一个PDP,就可以激活处理彩信需要的PDP2,并通知应用PDP2激活成功。
[0058] 当然,为了不影响现有的被激活态的PDP正常的业务处理流程,如果当前已被激活的PDP中没有APN type为default类型的PDP时,则可以不再激活新的PDP直接向应用返回激活PDP失败。
[0059] 实际应用中,为了保证对应的业务类型的业务数据能够通过第一PDP进行业务数据的传输,还需要建立所述第一PDP与其所对应的业务类型的连接通道,以使该类型的业务数据能够通过所述第一PDP传输业务数据。
[0060] 参见图3,延续图2所示实施例根据APN2的配置激活PDP2之后,建立所述PDP2与其所对应的业务类型的连接通道包括:
[0061] S301、判断APN2是否有网关,如果有,则进入步骤S301,否则进入步骤S302。
[0062] S302、将所述APN2配置的网关地址增加至当前系统路由表中。
[0063] 需要说明的是,在Android系统中,当激活一个新的PDP,即PDP2时,系统会在路由表中自动增加一个default的路由项。为了保证原业务的正常进行,需要将系统在路由表中自动增加的这个default的路由项删除。
[0064] S303、将彩信接收业务对应的应用创建的socket与PDP2对应的网络接口io2进行绑定。
[0065] 通过图3所示的实施例可知,本发明实施例所提供的方法对具有网关的APN和不具有网关的APN,在建立由该APN配置的PDP与其所对应的业务类型的连接通道的方式是不同的。对于有网关的APN,处理起来比较简单,只需要将该APN所配置的网关地址增加至当前系统的路由表中,即可使目的地址为该网关的数据路由到该APN配置的PDP,即在图3所示的实施例中,就能够使目的地址为APN2配置的网关地址的数据路由到PDP2了。
[0066] 对于没有网关的APN,采用的处理方法是,为该APN所处理的业务类型的应用分别建立起与该APN配置的第一PDP的连接,具体为将对应的应用创建的socket绑定到第一PDP对应的网络接口上。在图3所示的实施例中,即将彩信接收业务对应的应用创建的socket与PDP2对应的网络接口io2进行绑定。
[0067] 如果APN2对应的应用有多个的话,那么需要将这多个应用建立的socket分别与io2进行绑定。
[0068] 实际应用中,可以通过Android系统的setsockopt()函数来将应用创建的socket与PAP对应的网络接口进行绑定。
[0069] 本发明所提供的方法,根据待处理的业务类型,判定当前处于激活态的PDP的是否有处理能,如果当前处理激活态的PDP不能处理时,则根据与待处理的业务类型对应的APN的配置激活新的PDP处理待处理业务,而不是中断当前正在被处理的业务来处理待处理的业务。而且,本发明实施例所提供的方法,在获得了新的PDP后,还进一步建立了对应的应用与该新的PDP之间的连接关系,进一步保证了对应的业务数据的传输。
[0070] 参见图4、本发明一实施例还提供一种基于Android的业务处理装置,该装置包括:
[0071] 确定单元401,用于在接收到第一业务请求时,确定所述第一业务的业务类型;
[0072] 判断单元402,用于根据所述第一业务的业务类型判断当前处于激活态的PDP能否处理所述第一业务;
[0073] 第一处理单元403,用于当前处于激活态的PDP不能处理所述第一业务时,根据所述第一业务的业务类型创建第一PDP;
[0074] 其中,所述第一处理单元403首先根据第一业务的业务类型确定对应的第一APN;然后根据所述第一APN的配置激活对应第一PDP。
[0075] 通知单元404,用于通知所述第一业务对应的应用,通过所述第一PDP处理所述第一业务。
[0076] 本发明实施例所提供的装置能够根据具体业务的业务类型创建对应的PDP,使得Android平台对PDP的支持由一个增强为多个,从根本上避免了现有Android平台在进行业务处理时,当处于激活态的PDP不能处理一待处理业务类型时,中断当前其正在处理的业务,去激活当前的PDP,重新创建新的PDP进行业务处理,待业务处理完成后,再恢复原PDP的过程,实现了Android平台中多种不同类型的业务并行处理,极大地提升了用户体验。
[0077] 本发明的另一实施例中,图4所示的装置还包括:
[0078] 连接单元405,用于建立所述第一PDP与其所对应的业务类型的连接通道,以使该类型的业务数据能够通过所述第一PDP传输业务数据。
[0079] 进一步地,所述连接单元包括404:
[0080] 第一获取子单元,用于获取所述第一PDP所对应的APN配置的网关地址;
[0081] 增加子单元,用于将所述网关地址增加至当前系统路由表中。
[0082] 在本发明另一实施例中,所述连接单元404包括:
[0083] 第二获取子单元,用于获取所述第一业务对应的应用创建的socket;
[0084] 绑定子单元,用于将所述socket与所述第一PDP对应的网络接口进行绑定。
[0085] 可选地,在本发明一实施例中,图4所示的装置还包括:
[0086] 第二处理单元406,用于当前处于激活态的PDP能够处理所述第一业务时,利用对应的处于激活态的PDP处理所述第一业务。
[0087] 本发明所提供的装置,根据待处理的业务类型,判定当前处于激活态的PDP的是否有处理能力,如果当前处理激活态的PDP不能处理时,则根据与待处理的业务类型对应的APN的配置激活新的PDP处理待处理业务,而不是中断当前正在被处理的业务来处理待处理的业务。而且,本发明实施例所提供的方法,在获得了新的PDP后,还进一步建立了对应的应用与该新的PDP之间的连接关系,进一步保证了对应的业务数据的传输。
[0088] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0089] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
QQ群二维码
意见反馈