一种基于手机热点的网络连接切换方法及手机与流程

文档序号:11995329阅读:591来源:国知局
一种基于手机热点的网络连接切换方法及手机与流程
本发明涉及移动终端领域,尤其涉及的是一种基于手机热点的网络连接切换方法及手机。

背景技术:
Android(安卓)是现有智能移动终端常用的操作系统,基于WCDMA网络的Android手机必须通过PDP(分组数据协议)连接才能上网,而PDP连接需根据某一个APN(访问接入点)建立。手机的APN有default(默认)、dun(拨号网络)、mms(彩信)等多种类型。Android手机建立的PDP连接时默认使用default类型的APN,因此Android手机上运行的浏览器等应用程序通过default类型的APN连接到因特网。基于WCDMA网络的Android手机在启动Tethering热点(网络共享或叫手机便携式热点,即手机将它的上网功能分享给其他终端使用的功能,例如USB绑定或便携式WLAN热点)服务时,其它的终端可通过该Tethering热点连接Android手机,并通过该Android手机上默认建立的PDP连接(调用的是default类型的APN设置)上网,但通过Tethering热点服务上网最合适的PDP连接应该使用dun类型的APN设置,现有技术需要用户手动设置,给用户带来了许多不便。因此,现有技术还有待于改进和发展。

技术实现要素:
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于手机热点的网络连接切换方法及手机,旨在当手机启动网络共享服务时,该手机的应用程序可自动从网络连接默认建立的default类型PDP连接切换到网络共享最合适的dun类型的PDP连接,为用户提供方便。本发明解决技术问题所采用的技术方案如下:一种基于手机热点的网络连接切换方法,其中,包括步骤:A、开启手机的网络共享服务,接收通过该手机上网的终端发送的网络共享服务的网络连接请求;B、当接收到所述网络连接请求时,控制断开该手机默认类型的PDP连接,对该手机中对应的网络共享的接口进行配置,并新建一拨号网络类型的PDP连接;C、当所述拨号网络类型的PDP连接成功后,配置该连接的DNS和路由,并获取该拨号网络类型的PDP连接的网卡信息,并根据所述网卡信息控制所述终端通过所述拨号网络类型的PDP连接上网。所述基于手机热点的网络连接切换方法,其中,还包括步骤D:当关闭手机的网络共享服务时,控制断开所述拨号网络类型的PDP连接,将网络连接方式切换到该手机系统默认类型的PDP连接。所述所述基于手机热点的网络连接切换方法,其中,所述步骤B中建立一个拨号网络类型的PDP连接的步骤具体包括:B1、从所述手机系统属性中读取对应运营商的标识,所述标识包括运营商的国家码和网号,并根据所述运营商的标识,从所述手机系统对应的数据库中获得该运营商的所有APN信息;B2、遍历所述APN信息,判断是否存在拨号网络类型的APN;当是时进入步骤B3;当否时,则使用手机系统默认类型的APN的PDP连接;B3、判断手机系统默认类型的APN的PDP连接的连接状态是否连接完成,若连接完成,则断开手机系统默认类型的APN的PDP连接,新建一个拨号网络类型的PDP连接;若连接状态为正在连接,则延迟到所述连接状态为连接完成后,再进行上述操作。所述所述基于手机热点的网络连接切换方法,其中,所述步骤B和步骤C之间还包括:步骤C0、对手机网络共享服务进行设置,其包括:启动IP地址转发功能,设置网络共享服务可分配的IP地址以及设置网络共享服务的DNS服务器地址。所述基于手机热点的网络连接切换方法,其中,所述步骤C中获取该拨号网络类型的PDP连接的网卡信息,并根据所述网卡信息控制所述终端通过所述拨号网络类型的PDP连接上网的步骤包括:C21、从所述手机的DNS服务器地址对应的路由信息中获取到所述拨号网络类型的PDP连接的网卡信息;C22、根据所述网卡信息启动NAT网址转换功能,以控制所述终端通过所述拨号网络类型的PDP连接上网。一种采用所述基于手机热点的网络连接切换方法的手机,其中,包括:请求接收模块,用于开启手机的网络共享服务,接收通过该手机上网的终端发送的网络共享服务的网络连接请求;控制切换模块,用于当接收到所述网络连接请求时,控制断开该手机默认类型的PDP连接,对该手机中对应的网络共享的接口进行配置,并新建一拨号网络类型的PDP连接;配置连接模块,用于当所述拨号网络类型的PDP连接成功后,配置该连接的DNS和路由,并获取该拨号网络类型的PDP连接的网卡信息,并根据所述网卡信息控制所述终端通过所述拨号网络类型的PDP连接上网。所述的手机,其中,还包括:恢复默认模块,用于当关闭手机的网络共享服务时,控制断开所述拨号网络类型的PDP连接,将网络连接方式切换到该手机系统默认类型的PDP连接。所述的手机,其中,所述控制切换模块中包括以下单元:APN信息获取单元、从所述手机系统属性中读取对应运营商的标识,所述标识包括运营商的国家码和网号,并根据所述运营商的标识,从所述手机系统对应的数据库中获得该运营商的所有APN信息;判断类型单元,遍历所述APN信息,判断是否存在拨号网络类型的APN;当是时进入步骤B3;当否时,则使用手机系统默认类型的APN的PDP连接;类型切换单元,判断手机系统默认类型的APN的PDP连接的连接状态是否连接完成,若连接完成,则断开手机系统默认类型的APN的PDP连接,新建一个拨号网络类型的PDP连接;若连接状态为正在连接,则延迟到所述连接状态为连接完成后,再进行上述操作。所述的手机,其中,所述系统还包括以下单元:网络共享服务设置单元,用于对手机网络共享服务进行设置,其包括,启动IP地址转发功能;设置网络共享服务可分配的IP地址以及设置网络共享服务的DNS服务器地址。所述的手机,其中,所述配置连接模块还包括:查询子单元,用于从所述对应的DNS服务器地址对应的路由信息中获取所述拨号网络类型的PDP连接的网卡信息;控制子单元,用于根据所述网卡信息启动NAT网址转换功能,以控制所述终端通过所述拨号网络类型的PDP连接上网。有益效果:本发明所提供的一种基于手机热点的网络连接切换方法及手机,当该手机在进行网络共享服务时,其可以自动从手机系统默认类型的APN的PDP连接切换到网络共享服务最为合适的拨号网络类型的PDP连接上网,无需用户手动设置,为用户提供了方便。附图说明图1为本发明提供的一种基于手机热点的网络连接切换方法的流程图。图2为本发明提供的一种基于手机热点的网络连接切换方法中建立一个拨号网络类型的PDP连接的流程图。图3为本发明提供的一种基于手机热点的网络连接切换方法的最佳应用实施例的流程图。图4为本发明提供的一种手机的原理结构框图。图5为本发明提供的一种手机中控制切换模块的原理结构框图。具体实施方式为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参见图1,图1是本发明一种基于手机热点的网络连接切换方法步骤流程图。本实施例中,所述方法包括以下步骤:S1、开启手机的网络共享服务,接收通过该手机上网的终端发送的网络共享服务的网络连接请求。在启动手机的网络共享服务功能时,其他终端可通过USB绑定或WLAN热点接入该手机,以该手机为调制解调器,向该手机发送连接网络的请求,以通过该手机提供的网络热点连接网络,并且,在默认状态下使用default类型的APN建立PDP连接上网。S2、当接收到所述网络连接请求时,控制断开该手机系统默认类型的PDP连接,对该手机系统中对应的网络共享的接口进行配置,并新建一拨号网络类型的PDP连接。当手机系统接收到其他终端发出的网络共享服务的网络连接请求时,先断开手机系统默认的default类型的PDP连接,并新建一拨号网络类型(dun类型)的PDP连接。具体的,本实施例中优选基于WCDMA网络的安卓手机为例,如图2所示为提供的一种基于手机热点的网络连接切换方法中建立一个拨号网络类型的PDP连接的流程图,新建一拨号网络类型的PDP连接包含以下步骤:S201、从所述手机系统属性中读取对应运营商的标识,所述标识包括运营商的国家码和网号,并根据所述运营商的标识,从所述手机系统对应的数据库中获得该运营商的所有APN信息。S202、遍历手机系统中的所有APN信息,判断是否存在拨号网络类型的APN;当是时进入步骤S204;当否时,进入步骤S203。S203、使用手机系统默认类型的APN的PDP连接进行其他移动终端的网络共享服务。S204、判断手机系统默认类型的APN的PDP连接的连接状态是否为连接中,若连接已经完成,则进入步骤S205,否则进入步骤S206。S205、断开手机系统默认类型的APN的PDP连接,新建一个拨号网络类型的PDP连接。S206、延迟到所述连接状态为连接完成后,再进行切换网络连接类型的操作。所述所述基于手机热点的网络连接切换方法,其中,所述步骤S2和步骤S3之间还包括:步骤23、对手机网络共享服务进行设置,其包括:1)启动IP地址转发功能;2)设置网络共享服务可分配的IP地址;3)设置网络共享服务的DNS服务器地址。S3、当所述拨号网络类型的PDP连接成功后,配置该连接的DNS和路由,并获取该拨号网络类型的PDP连接的网卡信息,并根据所述网卡信息控制所述终端通过所述拨号网络类型的PDP连接上网。所述配置拨号网络类型的PDP连接的DNS和路由,具体包括:步骤311、重复上述步骤S201-S204,判断是否存在拨号网络类型的APN,若不存在则使用手机系统默认类型的PDP连接,如果存在则进行步骤312;步骤312、对所述新建的拨号网络类型的PDP连接配置DNS服务器;步骤313、对所述新建的拨号网络类型的PDP连接配置路由。具体的,在上述步骤S3中所述的获取该拨号网络类型的PDP连接的网卡信息,并根据所述网卡信息控制所述终端通过所述拨号网络类型的PDP连接上网,具体步骤包括:步骤321、从所述手机的DNS服务器地址对应的路由信息中获取到所述拨号网络类型的PDP连接的网卡信息;步骤322、根据所述网卡信息启动NAT网址转换功能,以控制所述终端通过所述拨号网络类型的PDP连接上网。下面以具体应用实施例对上述方法进行详细的说明。如图3所示,以Android4.0系统为例,本实施例中对手机其中Android系统的Tethering.java文件和ConnectivityService.java文件的代码进行修改,以实现接入手机网络共享服务(也即是Tethering热点)的终端可通过dun类型的PDP连接上网,具体实施过程包括:S01、首先接收接入该手机的终端发送的连接网络的请求,并完成对应接口的配置与添加。具体包括步骤S11-S14。S11、当收到开启手机网络共享服务的用户指令时,安卓4.0系统的TetherInterfaceSM状态机进入InitialState状态,以接收通过该手机上网的终端发送的连接网络的请求(即CMD_TETHER_REQUESTED),当收到所述请求时,发送确认连接类型的消息CMD_TETHER_MODE_REQUESTED给系统的TetherMasterSM状态机;所述TetherInterfaceSM状态机进入StartingState状态。S12、在进入StartingState后,对该手机系统中对应的接口(Usb接口为rndis,WIFI接口为wlan)进行配置,即调用NetworkManagementService.setInterfaceConfig配置Tethering接口的属性。以USB绑定的接口rndis为例:通过调用configureUsbIface()函数配置对应的接口,具体命令为:interfacesetcfgrndis0192.168.42.12924[upbroadcastmulticast]。配置Tethering接口属性成功后,所述TetherInterfaceSM状态机进入TetheredState状态。S13、进入TetheredState状态后,保存所述配置的Tethering接口的信息,通过调用NetworkManagementService.tetherInterface()添加所述tethering接口。以USB绑定的接口rndis为例,添加接口的具体命令为:tetherinterfaceaddrndis0。S14、添加所述tethering接口成功后,所述TetherInterfaceSM状态机等待所述TetherMasterSM返回dun类型的PDP连接的网卡信息。与所述过程S01同时执行的还有图3中S02所示过程,系统的TetherMasterSM状态机在手机网络共享服务开启时进入InitialState状态,准备建立dun类型的PDP连接。具体包括步骤S21-S25。S21、当收到TetherInterfaceSM在InitialState状态下发送的CMD_TETHER_MODE_REQUESTED消息时,所述TetherMasterSM状态机进入TetherModeAliveState状态。S22、在TetherModeAliveState状态中,调用chooseUpstreamType函数先断开default类型APN的PDP连接,并建立一个dun类型的PDP连接。在上述步骤S22中新建一个dun类型的PDP连接的具体步骤为:(1).从系统属性读取运营商标识MCC+MNC,即运营商的国家码+网号;(2).根据该运营商的标识,从存储APN设置的数据库表Carriers中获得该运营商的所有APN;(3).循环读取获得的APN设置,判断是否为dun类型的APN;(4).如果不存在dun类型的APN,维持Android4.0系统默认类型的PDP连接,即使用默认的default类型APN的PDP连接提供给Tethering热点服务上网;(5).如果存在dun类型的APN,判断当前DefaultAPN的连接状态是否为CONNECTING。如果不是,先断开default类型的PDP连接,然后新建dun类型APN的PDP连接;(6):如果当前DefaultAPN的连接状态是CONNECTING。则延时发送CMD_RETRY_UPSTREAM消息,收到消息后再执行PDP连接的切换。需要强调的是:如果当前DefaultAPN的连接状态是CONNECTING(即正在连接),此时执行该PDP连接的断开会失败,因此要延迟一段时间,等DefaultAPN的PDP连接完成,即连接状态变为CONNECTED。此时再执行该PDP连接的断开才会成功。S23、在TetherModeAliveState状态中,调用turnOnMasterTetherSettings函数设置对应的网络共享服务(Tethering热点),具体包括:(1).通过调用NetworkManagementService.setIpForwardingEnabled()启动ip地址转发功能,命令为:ipfwdenable;(2).调用NetworkManagementService.startTethering()设置Tethering热点可分配的ip地址,命令为:tetherstart192.168.42.2192.168.42.254……;(3).调用NetworkManagementService.setDnsForwarders()设置Tethering热点的DNS服务器地址,命令为:tetherdnsset8.8.8.88.8.4.4。S24、当所述dun类型的PDP连接建立成功后,dun类型的PDP连接建立成功后,connectivityService.hanleConnectivityChange()函数中配置该连接的DNS(域名解析服务器)和route(路由)。S25、TetherModeAliveState状态接收到CMD_UPSTREAM_CHANGED消息,再次调用chooseUpstreamType函数,向所述TetherInterfaceSM状态机返回所述dun类型PDP连接的相关信息。具体为,通chooseUpstreamType函数获得所述dun类型PDP连接的网卡信息,然后过消息CMD_TETHER_CONNECTION_CHANGED发送所述网卡信息给所述TetherInterfaceSM。S03、当所述TetherInterfaceSM在TetheredState状态下获得所述网卡信息时,调用函数NetworkManagementService.enableNat()启动NAT网址转换功能。以USB绑定热点的接口rndis为例,即发送命令:natenablerndis0rmnet02fe80::/64192.168.42.0/24。进而使得所述终端通过所述dun类型的PDP连接上网。最后,在Android系统结束Tethering热点服务时,,将PDP连接切换回去,即将断开新建的dun类型APN的PDP连接并重建default类型APN的PDP连接。1).系统结束Tethering热点服务时TetherMasterSM状态机会退出TetherModeAliveState状态。2).TetherModeAliveState状态退出时,手机系统会调用函数turnOffUpstreamMobileConnection(),中断当前的PDP连接。即中断我们新建的dun类型APN的PDP连接。3).重建default类型APN的PDP连接,从而使手机系统恢复到普通上网时使用的default类型APNA的PDP连接。并且,基于类似的原理,除Android4.0系统的手机之外,可将上述实施例的基于手机网络共享服务的网络连接的方法移植到其他操作系统的手机中。由上可见,通过本发明的上述实施例的一种基于手机热点的网络连接切换方法,可以在手机网络共享服务开启时,建立一个dun类型的PDP连接,使得连接该手机的终端可通过dun类型的PDP连接上网。当连接该手机的终端中断与该手机的网络共享服务时,该手机恢复到普通上网时手机系统默认类型的PDP连接上网,即Android手机在普通上网时使用default类型APN的PDP连接,在接受与其他终端网络共享时,系统会自动切换到最合适的dun类型的PDP连接,无需用户手动进行设置,为用户提供了方便。基于上述实施例,本发明还提供了一种采用上述所述基于手机网络共享服务的网络连接的方法的手机,如图4所示为所述手机的原理结构框图,其中,包括:请求接收模块10,用于开启手机的网络共享服务,接收通过该手机上网的终端发送的网络共享服务的网络连接请求;控制切换模块20,用于当接收到所述网络连接请求时,控制断开该手机默认类型的PDP连接,对该手机中对应的网络共享的接口进行配置,并新建一拨号网络类型的PDP连接;配置连接模块30,用于当所述拨号网络类型的PDP连接成功后,配置该连接的DNS和路由,并获取该拨号网络类型的PDP连接的网卡信息,并根据所述网卡信息控制所述终端通过所述拨号网络类型的PDP连接上网。所述的手机,其中,还包括:恢复默认模块,用于当关闭手机的网络共享服务时,控制断开所述拨号网络类型的PDP连接,将网络连接方式切换到该手机系统默认类型的PDP连接。所述的手机,其中,如图5所示,所述控制切换模块中包括以下单元:APN信息获取单元21、从所述手机系统属性中读取对应运营商的标识,所述标识包括运营商的国家码和网号,并根据所述运营商的标识,从所述手机系统对应的数据库中获得该运营商的所有APN信息;判断类型单元22,遍历所述APN信息,判断是否存在拨号网络类型的APN;当是时进入步骤B3;当否时,则使用手机系统默认类型的APN的PDP连接;类型切换单元23,判断手机系统默认类型的APN的PDP连接的连接状态是否连接完成,若连接完成,则断开手机系统默认类型的APN的PDP连接,新建一个拨号网络类型的PDP连接;若连接状态为正在连接,则延迟到所述连接状态为连接完成后,再进行上述操作。所述的手机,其中,所述系统还包括以下单元:网络共享服务设置单元,用于对手机网络共享服务进行设置,其包括,启动IP地址转发功能;设置网络共享服务可分配的IP地址以及设置网络共享服务的DNS服务器地址。所述的手机,其中,所述配置连接模块还包括:查询子单元,用于从所述对应的DNS服务器地址对应的路由信息中获取所述拨号网络类型的PDP连接的网卡信息;控制子单元,用于根据所述网卡信息启动NAT网址转换功能,以控制所述终端通过所述拨号网络类型的PDP连接上网。因上述模块中的功能与上述方法步骤中的功能一一对应,在此不再赘述。综上所述,本发明所提供的一种基于手机热点的网络连接切换方法及手机,通过在手机的网络共享服务开启时,当接收到其他终端发出的网络共享服务的网络连接请求时,可以自动中断该手机系统默认类型的PDP连接,为该手机的终端建立一个dun类型的PDP连接,使得所述终端可通过该dun类型的PDP连接上网;当手机中断网络共享服务状态时,系统会自动中断新建的dun类型的PDP连接,恢复手机系统默认类型的PDP,该手机的网络共享服务的网络连接类型可以根据其他终端是否与该手机进行网络共享来自动进行切换,无需用户手动设置,为用户提供了方便。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1