一种APN选择方法及装置与流程

文档序号:11158223阅读:2139来源:国知局
一种APN选择方法及装置与制造工艺

本发明涉及通讯领域,特别是涉及一种(Access Point Name,接入点)APN选择方法及装置。



背景技术:

DSDS(Dual SIM Dual Standby,双卡双待)和DADA(Dual SIM Dual Active,双卡双通)都是指手机可以插入两张手机卡,而且能同时使用。DSDS或者DSDA主要应用于3G手机,而随着4G手机的成熟,DSDS和DSDA技术在基于4G网络的基础上会有更多的应用和功能出现。

由于4G移动网络目前在全球尚处于大规模建网阶段,对于双4G这种创新技术来说,还没有大量出现和被使用。然而,无论是使用单卡还是双卡的手机上网,必然要用到APN,APN指一种网络接入技术,是通过手机上网时必须配置的参数,它决定了手机通过哪种接入方式来访问网络。当终端需要连接网络,需要选择APN,目前联网时广泛使用的APN选择方案是Android默认的方案。Android默认两种选择方案包括轮询查询方案以及Prefer APN方案,其中,轮询查询方案,在每次需要联网时,把手机中SIM卡对应的有APN按照数据库中的顺序轮询进行尝试,轮询过程中每次联网失败需要将失败信息上报给应用,然后再进行下一个APN的尝试。直到找到可以上网的APN,使用此APN上网,停止轮询。如果轮询了一遍APN,联网均失败也要向手机系统上报失败,停止轮询。由于轮询查询方案并不记录上次联网的APN,每次联网都要从头开始轮询查找APN数据库;APN的查询是按照在数据库中的位置先后查询且尝试每个APN联网的时间较长。例如,目前尝试一个APN接入网络的时间25秒左右。在内置的APN较多的情况下,查询到排列在数据库后面的 APN所用的时间会较长,这样会误导用户认为数据不可用。,导致用户体验非常差。

Prefer(优选)APN方案:终端只保存一个preferAPN。针对每个SIM卡只设置一个APN作为preferAPN。每次联网时,如果有preferAPN,终端只尝试使用preferAPN进行联网。如果preferAPN联网失败。停止尝试其他APN,直接上报联网失败。preferAPN可以由用户手动设定。如果preferAPN不存在,轮询查询此SIM卡的对应所有APN,找到能上网的APN就将此APN设置为preferAPN,保存到终端中,停止轮询。然而,在该方案中,当preferAPN不存在时,会使用轮询查询,找到可上网APN并设置为preferAPN。所以,当preferAPN不存在时,此方案也要首先采用轮询查询的方式,也有轮询方式的缺点。另外由于手机只存储一个preferAPN,对于双4G卡终端,数据在两卡间切换时,获得preferAPN不正确,造成频繁轮询查询或本来存在可用APN但是仍上报联网失败的问题,不进行尝试其他APN。例如,一种情况:卡1和卡2的MCC(Mobile Country Code,移动国家码)、MNC(Mobile Network Code,移动网络码),参数不同,对应的APN肯定也不同。假如手机中preferAPN存储的是卡1的APN,数据切换到卡2,卡2就会认为perferAPN不存在,进行轮询查询,查询到可用APN后设置preferAPN为卡2的APN。这时再将数据切回卡1,卡1同样会遇到问题,再次轮询查询和设置preferAPN。另外一种情况:MCC、MNC相同的卡1和卡2,分别有两个相应的APN,APN1和APN2,终端中设置APN1为preferAPN,联网时终端只尝试APN1联网,如果APN1联网失败,终端不再自动尝试APN2,直接上报联网失败,这样就漏查了APN2。



技术实现要素:

本发明提供一种APN选择方法及装置,用以解决目前技术中对于双卡或多卡的终端存在的APN选择效率低和APN选择错误的问题。

根据本发明的一个方面,提供了一种APN选择方法,包括:按照预先设置的优先级顺序依次使用预先设置的APN进行联网尝试;待联网成功后,停止联网尝试,通知终端联网成功。

进一步的,上述方法还包括:在按照预先设置的优先级顺序依次使用预先设置的APN进行联网尝试之前,获取终端内的各SIM卡的MCC以及MNC信息;根据各SIM卡的MCC以及MNC信息在终端的各SIM卡的preferAPN数据库中选择APN,生成与各SIM卡对应的preferAPN链表,APN按照优先级顺序记录在preferAPN链表中。

进一步的,上述方法还包括:在生成与各SIM卡对应的preferAPN链表之后,根据SIM卡的MCC以及MNC信息在APN数据库中继续选择APN,生成与各SIM卡对应的备选APN链表,备用APN链表中所有APN的优先级低于preferAPN链表中所有的APN。

其中,生成与各SIM卡对应的preferAPN链表,包括:根据APN数据库中预先记录的各APN的优先级字段来确定各APN的优先级顺序;根据确定出的优先级顺序将各APN插入至preferAPN链表。

进一步的,上述方法还包括:在联网成功后,将本次联网成功所使用的APN设置为最高优先级,将APN移动至preferAPN链表的头节点,将本次联网过程中每次联网尝试失败所使用的APN移动至APN所属的链表的尾节点,在SIM卡的preferAPN链表中的APN在联网失败次数达预设次数的情况下,将该APN转移至该SIM卡的备用APN链表中,在使用preferAPN链表中的APN尝试联网均失败且使用备用APN链表中的APN联网成功后,将联网成功所使用的APN转移至该SIM卡的preferAPN链表中。

其中,按照预先设置的优先级顺序依次使用预先设置的APN进行联网尝试,包括:在进行联网尝试的过程中,如果联网尝试失败,且在预先设置的preferAPN链表和备用APN链表中还存在未尝试联网的APN,则不将联网失败的消息告知终端,直至预先设置的APN链表和备用APN链表中不存在任何 未尝试联网的APN时,告知终端本次联网失败。

根据本发明的另一个方面,提供了一种APN选择装置,包括:联网模块,用于按照预先设置的优先级顺序依次使用预先设置的APN进行联网尝试;通知模块,用于待联网成功后,停止联网尝试,通知终端联网成功。

进一步的,上述装置还包括:获取模块,用于在按照预先设置的优先级顺序依次使用预先设置的APN进行联网尝试之前,获取终端内的各客户识别模块SIM卡的MCC以及MNC信息;

第一生成模块,用于根据各SIM卡的MCC以及MNC信息在终端的各SIM卡的preferAPN数据库中选择APN,生成与各SIM卡对应的preferAPN链表,APN按照优先级顺序记录在preferAPN链表中。

进一步的,上述装置还包括:第二生成模块,用于在生成与各SIM卡对应的preferAPN链表之后,根据SIM卡的MCC以及MNC信息在APN数据库中继续选择APN,生成与各SIM卡对应的备选APN链表,备用APN链表中所有APN的优先级低于preferAPN链表中所有的APN。

其中,上述第一生成模块,包括:确定单元,用于根据APN数据库中预先记录的各APN的优先级字段来确定各APN的优先级顺序;插入单元,用于根据确定出的优先级顺序将各APN插入至preferAPN链表。

进一步的,上述装置还包括:设置模块,用于在联网成功后,将本次联网成功所使用的APN设置为最高优先级,将APN移动至preferAPN链表的头节点,将本次联网过程中每次联网尝试失败所使用的APN移动至APN所属的链表的尾节点,在SIM卡的preferAPN链表中的APN在联网失败次数达预设次数的情况下,将该APN转移至该SIM卡的备用APN链表中,在使用preferAPN链表中的APN尝试联网均失败且使用备用APN链表中的APN联网成功后,将联网成功所使用的APN转移至该SIM卡的preferAPN链表中。

其中,上述联网模块具体用于:在进行联网尝试的过程中,如果联网尝试失败,且在预先设置的preferAPN链表和备用APN链表中还存在未尝试联网 的APN,则不将联网失败的消息告知终端,直至预先设置的preferAPN链表和备用APN链表中不存在任何未尝试联网的APN时,告知终端本次联网失败。

本发明实施例提供的方法使得当用户需要进行联网时,多卡终端可以快速准确的选择合适的APN进行联网时,提高了联网效率。

附图说明

图1是本发明实施例1提供的APN选择方法的流程图;

图2是本发明实施例2提供的终端的系统框架示意图;

图3是本发明实施例2中preferAPN链表和备用APN链表的示意图;

图4是本发明实施例2、3提供的单卡APN选择的流程图;

图5是本发明实施例3、4提供的双卡APN选择方法的流程图;

图6是本发明实施例5提供的APN选择装置的结构框图。

具体实施方式

为了解决现有技术中基于多SIM卡终端选择APN效率较低的问题,本发明提供了一种APN选择方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

实施例1

本实施例以4G移动网络为基础,针对双4G移动终端技术,提出了一种支持双4G卡的APN选择方法。该方法用于实现当运营商提供大量的APN时,终端快速准确的选择合适的APN进行联网,旨在为用户提供一种更好的移动上网体验。

本实施例提供了一种APN选择方法,图1是本发明实施例1提供的APN选择方法的流程图,如图1所示,该方法包括如下处理:

步骤101:按照预先设置的优先级顺序依次使用预先设置的APN进行联网 尝试;

步骤102:待联网成功后,停止联网尝试,通知终端联网成功。

在执行上述步骤101以及102之前,本实施例的方案还包括预先设置APN的过程,基于此,上述方法还包括如下处理:

在按照预先设置的APN的优先级顺序依次使用APN进行联网尝试之前,获取终端内的各SIM卡的MCC以及MNC信息;根据各SIM卡的MCC以及MNC信息在终端的各SIM卡的preferAPN数据库中选择APN,生成与各SIM卡对应的preferAPN链表,该链表中的APN即为preferAPN,preferAPN按照优先级顺序记录在preferAPN链表中。其中,preferAPN链表中的所有APN都是曾经联网成功过的,生成与各SIM卡对应的preferAPN链表如图3所示,根据APN数据库中预先记录的各APN的优先级字段来确定各APN的优先级顺序;根据确定出的优先级顺序将各preferAPN插入至preferAPN链表。

本实施例提供的方案还包括在联网成功后,基于当前联网情况对APN的优先级进行调整的方法,基于此,上述方法还包括如下处理:在联网成功后,将本次联网成功所使用的APN设置为最高优先级,将该APN移动至preferAPN链表的头节点,将本次联网过程中每次联网尝试失败所使用的APN移动至preferAPN链表的尾节点。

其中为了缩短使用每个APN尝试联网所使用的时间,按照预先设置的APN的优先级顺序依次使用APN进行联网尝试具体可以包括:

为了各SIM卡的APN的优先级进行有效的划分,在建立SIM卡的preferAPN链表后,还可以根据总的APN数据库建立该SIM卡的备用APN链表,以便在preferAPN链表中所有APN无法进行联网时,使用备用APN链表中的APN进行联网,基于此,上述方法还包括:

在生成与各SIM卡对应的preferAPN链表之后,根据SIM卡的MCC以及MNC信息在总APN数据库中继续选择APN,生成与各SIM卡对应的备用APN链表,如图3所示,备用APN链表中所有APN的优先级低于preferAPN链表 中所有的preferAPN。

在进行联网尝试的过程中,先尝试preferAPN链表中的preferAPN,如果preferAPN链表中的preferAPN均失败后,再尝试备用APN链表中的APN。如果备用APN链表中APN联网失败,且备用APN链表中还存在未尝试联网的APN,则不将联网失败的消息告知终端,直至备用APN链表中不存在任何未尝试联网的APN时,告知终端本次联网失败。

在联网过程中APN的优先级也会动态变化,并将变化同步更新到对应APN链表和APN数据库中,在SIM卡的preferAPN链表中的preferAPN在联网失败次数达预设次数的情况下,将该preferAPN转移至该SIM卡的备用APN链表,在preferAPN链表中的所有APN均联网失败而备用APN链表中某个APN联网成功后,将此APN转移至该SIM卡的perferAPN链表中。

实施例2

本实施例通过公开更多的技术细节来对本发明提供的APN选择方法进行进一步的阐述。

本实施例涉及支持移动数据业务的终端,图2是本发明实施例2提供的终端的系统框架示意图,如图2所示,在本实施例中,终端的系统框架可包括:支持双用户识别卡(SIM卡等)槽的终端、用户识别卡、preferAPN数据库以及总APN数据库,其中,终端支持的网络可包括但不限于:2G、3G、4G等。优选的,SIM卡1和SIM卡2都可支持2G、3G、4G等数据业务的使用。且本实施例中涉及的用户识别卡包括但不限于目前主流的用户识别卡如:SIM卡、USIM卡、UIM卡等。同时,需要说明的是,本实施例中所述的终端包括但不限于支持双卡的手机,也可包括多卡手机,或多卡终端等。

终端中预置一个APN配置文件,该配置文件中包含多个APN,每个APN对应的相关运营商的网络参数以及APN的优先级,当首次开机时终端根据配置文件生成总的APN数据库,该数据库中每个APN对应唯一的序号ID。在生成的总APN数据库中,可以根据MCC、MNC等关键参数分组。

在终端中预制两个preferAPN配置文件,分别对应卡SIM1和SIM卡2,PreferAPN配置文件中存储多个APN,其中的每个APN都是终端曾经连接成功的,并且都有优先级参数。终端根据这两个配置文件生成对应SIM卡1和SIM卡2的preferAPN数据库。

PreferAPN数据库是总APN数据库的子库,也就是说preferAPN中的每一个APN在总APN数据库中都存在,PreferAPN数据库在手机联网过程中可以动态变化。

终端开机后,首先读取出终端中已插入的SIM卡的标识信息,包括MCC、MNC等,并以此为关键词变量,在SIM卡1和SIM卡2的preferAPN数据库中筛选出符合要求的APN,生成卡SIM卡1和SIM卡2的preferAPN链表,同时更新preferAPN数据库,保证preferAPN数据库中只存储符合SIM卡的MCC、MNC等关键参数的APN,然后仍以SIM卡的MCC、MNC等关键变量在总数据库中筛选出符合的APN,生成SIM卡1和SIM卡2的备用APN链表,生成的preferAPN链表如图3所示。preferAPN链表和备用APN链表中的APN优先级从高到低排列。在preferAPN链表中已有的,就不再加入备用APN链表中。preferAPN链表的优先级比备用APN链表的优先级高。

基于以上设置,本实施例中提供的选择APN的方法具体可以包括:对于单卡的APN选择流程,如图4所示:首先轮询查询preferAPN链表,如果preferAPN链表中没有联网成功的APN,再轮询查找备用APN链表。轮询操作过程中,如果一旦找到了一个可以成功联网的APN后,就将其设定为默认上网的APN,设置为优先级最高的APN,插入到preferAPN链表的头节点。并停止轮询;如果尝试的APN联网失败则降低此APN的优先级,更改在链表中的位置,尝试下一个APN。轮询备用APN链表一遍后都没有联网成功,则上报手机联网失败。在SIM卡1和SIM卡2进行快速选择APN尝试联网时,如果用户没有指定使用哪个卡数据,则SIM卡1和SIM卡2可以分别进行APN快速选择轮询查询,哪个卡首先联网成功,就使用哪个卡的数据业务。如果用 户已指定使用某一个卡的数据业务,则只使用该卡来执行上述的选择APN方法。

进一步的,终端中的每个APN都是有优先级的,每个APN的优先级的确定可以使用如下方法:

根据运营商提供的优先级进行预制:

因为APN都是运营商提供的,所以APN的优先级可以征求运营商的意见。在预制到手机时,APN数据库中有相应的字段表示APN的优先级,并且按照优先级由高到底排序,便于生成按照优先级排列的preferAPN链表和备用APN链表。

在快速选择APN的联网过程中可以给每个APN设置或动态改变优先级,具体可以按照以下原则进行:

第一,在上一次联网使用过的APN,优先级最高,在preferAPN链表头结点位置。

第二,如果手机没有连接过网,即不存在上次联网使用的APN,那么从SIM卡对应的preferAPN链表和备用APN链表中轮询查询,第一个能连上网的APN,设置其优先级高,并且将其插入到perferAPN链表中优先级最高的头结点位置,同时更新数据库,即保证每次选择APN的时第一次查询的APN都是优先级最高的APN。

第三,快速选择APN的联网尝试过程中,尝试的APN联网不成功,将其优先级降低,如果此APN在preferAPN链表中,则将其放在preferAPN链表的尾节点,如果在备用APN链表,则将其放在备用APN链表的尾节点。同时更新对应的数据库信息,如果perferAPN链表中某个APN尝试过多次,一直无法联网成功,则将其从perferAPN链表中删除插入到备用APN链表中,同时更新对应的数据库信息。

进一步的,缩短每个APN连接网络时的尝试时间,如果本次尝试连接的APN联网失败,还要尝试其他APN,则本次轮询失败的状态不需要上报给手 机上层的应用,直接进行下一个APN的尝试,这样就大大缩减了每个APN尝试联网的时间。

实施例3

本实施例主要说明在没有preferAPN的情况下选择APN的方案,图5是本发明实施例3提供的双卡的APN选择的流程图,如图5所示,当用户没有选择具体使用哪个SIM卡上网时,当首次开机时,preferAPN是不存在的,所以图2中所示的preferAPN配置文件中没有APN,对应的preferAPN数据库和preferAPN链表都为空,终端将分别为SIM卡1和SIM卡2生成对应的如图3所示的备用APN链表,备用APN链表1和备用APN链表2,终端中的SIM卡1和SIM卡2分别按照图4所示的APN快速选择的流程进行APN快速选择,假如SIM卡1首先联网成功,SIM卡1通知手机系统,同时也通知给SIM卡2,这时SIM卡2将继续进行APN快速选择和联网尝试,选择可以上网的APN添加入SIM卡2的prefer链表中,但是SIM卡2不会进行上网,且联网成功不上报给手机系统,此操作只是用于更新SIM卡2的preferAPN数据库,有利于下一次联网尝试。手机将使用最先联网成功的SIM卡1进行上网,同时,SIM卡1将联网成功的APN插入对应的SIM卡1的preferAPN链表中,此APN从备用APN链表中删除,同时更新preferAPN数据库和配置文件信息。

如果SIM卡1轮询一遍所有的preferAPN链表和备用APN链表均联网失败,这时上报给SIM卡2,如果SIM卡2还没有轮询完一遍,这时SIM卡1不上报手机系统联网失败。如果SIM卡2已经轮询一遍仍没有联网成功,上报手机系统联网失败,即只有两个卡都快速选择APN失败后,才真正上报联网失败。

实施例4

本实施例主要说明在已有preferAPN的场景下选择APN的方法,该方法包括以下处理:

如果用户没有选择使用哪张卡的数据,则终端中的SIM卡1和SIM卡2首 先分别在各自的preferAPN链表中轮询查询,查询方式按照图5中阐述的APN快速选择方法,假如SIM卡1使用preferAPN中的第一个APN联网成功,则SIM卡1将联网成功的消息通知给手机系统,同时也通知给SIM卡2,此时,由于SIM卡2已经存在preferAPN链表,不需要再生成,所以将停止APN快速选择和联网尝试。由于SIM卡1联网成功使用的APN是第一个preferAPN链表的头节点APN,优先级是最高的,所以不用更新perferAPN链表和对应的数据库。

本发明实施例提供的方案与现有技术相比存在以下优点:

1、为每一个SIM卡建立preferAPN数据库,在建立网络连接时,轮询查询preferAPN链表和备用APN链表,减少了SIM卡查询APN失败的概率,可以快速选择APN,提高联网速度。

2、为每个APN设置优先级,双4G卡根据优先级从高到低轮询查询各个APN,快速确定联网所需的APN,且APN的优先级可以在轮询查询过程中动态变化,进一步提高了联网的速度;

3、缩短每个APN连接网络时尝试时间,可以使得终端快速准确的自动选择APN。

实施例5

本实施例提供了一种APN选择装置,图6是本发明实施例5提供的APN选择装置的结构框图,如图6所示,该装置60包括如下组成部分:

联网模块61,用于按照预先设置的优先级顺序依次使用预先设置的APN进行联网尝试;

通知模块62,用于待联网成功后,停止联网尝试,通知终端联网成功。

其中,上述装置60还可以包括:获取模块,用于按照预先设置的优先级顺序依次使用预先设置的APN进行联网尝试之前,获取终端内的各SIM卡的MCC以及MNC信息;第一生成模块,用于根据各SIM卡的MCC以及MNC信息在终端的各SIM卡的preferAPN数据库中选择APN,生成与各SIM卡对 应的preferAPN链表,APN按照优先级顺序记录在preferAPN链表中。

进一步的,上述装置60还可以包括:设置模块,用于在联网成功后,将本次联网成功所使用的APN设置为最高优先级,将APN移动至prefer链表的头节点,将本次联网过程中每次联网尝试失败所使用的APN移动至APN所属的链表的尾节点,在SIM卡的preferAPN链表中的APN在联网失败次数达预设次数的情况下,将该APN转移至该SIM卡的备用APN链表中,在使用preferAPN链表中的preferAPN尝试联网均失败且使用备用APN链表中的APN联网成功后,将联网成功所使用的APN转移至该SIM卡的preferAPN链表中。

其中,上述第一生成模块,具体可以包括:确定单元,用于根据APN数据库中预先记录的各APN的优先级字段来确定各APN的优先级顺序;插入单元,用于根据确定出的优先级顺序将各APN插入至preferAPN链表。

进一步的,上述装置60还可以包括:第二生成模块,用于在生成与各SIM卡对应的preferAPN链表之后,根据SIM卡的MCC以及MNC信息在总APN数据库中继续选择APN,生成与各SIM卡对应的备选APN链表,备用APN链表中所有APN的优先级低于preferAPN链表中所有的preferAPN。在进行联网尝试的过程中,先尝试preferAPN链表中的preferAPN,如果preferAPN链表中的preferAPN均失败后,再尝试备用APN链表中的APN。如果备用APN链表中APN联网失败,且备用APN链表中还存在未尝试联网的APN,则不将联网失败的消息告知终端,直至备用APN链表中不存在任何未尝试联网的APN时,告知终端本次联网失败。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

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