2024年10月13日发(作者:孔寄柔)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.8
(22)申请日 2014.05.19
(71)申请人 普天信息技术有限公司
地址 100080 北京市海淀区海淀北二街6号
(72)发明人 霍平 张凡 姜涌
(74)专利代理机构 北京德琦知识产权代理有限公司
代理人 王民盛
(51)
H04L29/08
H04W76/02
(10)申请公布号 CN 103973800 A
(43)申请公布日 2014.08.06
权利要求说明书 说明书 幅图
(54)发明名称
一种基于安卓系统的双网卡并存的
实现方法
(57)摘要
本申请公开了一种基于安卓系统的
双网卡并存通信方法,包括:应用层分别
调用这启用移动数据函数和启用WIFI函数
实现移动网络和WIFI网络的开启;建立新
网络连接后,判断是否已激活两个默认网
络,若是,保留这个新连接的网络并且保
留它的网络状态信息,使这个新的网络和
原网络并存并结束本流程,否则,判断网
络传输唤醒锁定变量是否是保持状态,若
是,设置时间延迟关闭屏幕,否则更新激
活默认网络变量实现新网络连接,重新设
置正在运行的网络类型,同时更新其他的
变量;设置拆解请求为否并更新网络设
置;更新路由设置、域名系统设置、网络
接口设置和连接属性;切换到新连接的网
络并发送一个广播消息给网络状态服务通
知网络接口名称发生改变。
法律状态
法律状态公告日
法律状态信息
未缴年费专利权终止IPC(主分
类):H04L29/08专利
2023-05-26
号:ZL2申请
日:20140519授权公告
日:20171208
法律状态
专利权的终止
权 利 要 求 说 明 书
1.一种基于安卓系统的双网卡并存通信方法,其特征在于,包括:
A、应用层分别调用这启用移动数据函数和启用WIFI函数实现移动网络和wifi
B、建立新网络连接后,判断是否已激活两个默认网络,若是,保留这个新连接
的网络并且保留它的网络状态信息,使这个新的网络和原网络并存并
则,执行步骤C;
网络的开启;
结束本流程,否
C、判断网络传输唤醒锁定变量是否是保持状态,若是,设置时间延迟关闭屏幕,
D、更新激活默认网络变量实现新网络连接,重新设置正在运行的网络类型,同
E、设置拆解请求为否并更新网络设置;
F、更新路由设置、域名系统设置、网络接口设置和连接属性;切换到新连接的网
络并发送一个广播消息给网络状态服务,用于通知网络接口名称发生
时更新其他的变量;
然后执行步骤D,否则直接执行步骤D;
改变。
2.根据权利要求1所述的方法,其特征在于,步骤A包括:
通过java中的反射实现调用到连接管理器类中的启动移动数据函数;
使能移动网络后,发送一条设置移动数据事件消息至连接服务模块的消息处理单
元;所述消息处理单元连接接入点,通过动态主机配置协议获得IP
rmnet_usb0。 地址,配置
3.根据权利要求1所述的方法,其特征在于,步骤A包括:
调用Wifi服务模块中的启用wifi函数使能wifi,wifi服务模块接着向自身发送一
wifi服务模块加载wifi内核驱动模块,然后启动wpa_supplicant程序;
wpa_supplicant程序完成接入点扫描,扫描后将扫描结果通过事件通知framework
framework层的wifi状态追踪器创建wifi监视器接收来自底层的事件,Wifi监视
器负责从wpa_supplicant程序接收事件通知,Wifi监视器把命令下发
程序,配置并连接接入点,获取IP地址。
层;
条CMD_WIFI_TOGGLED消息;
给wpa_supplicant
4.根据权利要求1所述的方法,其特征在于,步骤B所述判断是否已激活两个
默认网络之前,进一步包括:判断新连接的网络类型是否是默认的网
所述判断是否已激活两个默认网络的步骤,否则络,若是,执行
执行步骤F。
5.根据权利要求1所述的方法,其特征在于,步骤B为:
建立新网络连接后,判断激活默认网络变量是否已经设置并且新连接的网络类型
不等于这个激活默认网络变量已激活的网络类型,若满足以上条件保
网络并且保留它的网络状态信息,使这个新的网
执行步骤C。
留这个新连接的
络和原网络并存并结束本流程,否则,
说 明 书
技术领域
本申请涉及移动通信技术领域,尤其涉及一种基于安卓(android)系统的双网卡
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,
如智能手机和平板电脑。现有大部分移动设备具有多块网卡,如通过
(WIFI)方式接入互联网络的WIFI网卡以及通过移动通
3g/LTE网卡。
并存的实现方法。
局域无线网络
信网络方式接入互联网络的
由于WIFI网络可以免费使用,而3g/LTE网络通常是按照流量计费,现有的
android 系统联网策略通常是WIFI优先,在同一时刻只允许一个网络
说,打开WIFI网络的时候系统默认就会把3G
再开3G网络,系统也会再把3g
默认只使用WIFI网
接口进行通信。具体地
网络给关闭或者是当先打开WIFI网络
关闭;WIFI网络和3g网络同时存在的情况下,系统
络,不允许多网卡同时并存。
然而在实际应用中常常需要多个网卡同时并存,以下列举几个可能的应用场景:
1、不少公司或组织比如银行、税务等都有自己的内部专网(WIFI),日常工作中
经常会碰到需要同时访问内外网的问题,比如在内网上干活,外网(3g/LTE)
料,或者和其他人交换信息等;
上查资
2、当用户的wifi信号很差时、很微弱时,已经无法访问internet,这时系统也不
会自动切换到3g/LTE网络访问internet;
3、当用户有特殊需要,数据业务根据业务类型做多接口分流处理,这时需要多网
4、WIFI带宽受限,希望多网卡同时工作,提高下载速度,负载均衡,提升网络
发明内容
本申请提供了一种基于安卓系统的双网卡并存的实现方法,可以实现两个网卡同
本申请实施例提供的一种基于安卓系统的双网卡并存通信方法,包括:
A、应用层分别调用这启用移动数据函数和启用WIFI函数实现移动网络和wifi
B、建立新网络连接后,判断是否已激活两个默认网络,若是,保留这个新连接
的网络并且保留它的网络状态信息,使这个新的网络和原网络并存并结束本
则,执行步骤C;
网络的开启;
时工作。
资源利用率。
卡通信;
流程,否
C、判断网络传输唤醒锁定变量是否是保持状态,若是,设置时间延迟关闭屏幕,
D、更新激活默认网络变量实现新网络连接,重新设置正在运行的网络类型,同
E、设置拆解请求为否并更新网络设置;
时更新其他的变量;
然后执行步骤D,否则直接执行步骤D;
F、更新路由设置、域名系统设置、网络接口设置和连接属性;切换到新连接的网
较佳地,步骤A包括:
通过java中的反射实现调用到连接管理器类中的启动移动数据函数;
使能移动网络后,发送一条设置移动数据事件消息至连接服务模块的消息处理单
元;所述消息处理单元连接接入点,通过动态主机配置协议获得IP地址,
rmnet_usb0。
络并发送一个广播消息给网络状态服务,用于通知网络接口名称发生改变。
配置
较佳地,步骤A包括:
调用Wifi服务模块中的启用wifi函数使能wifi,wifi服务模块接着向自身发送一
wifi服务模块加载wifi内核驱动模块,然后启动wpa_supplicant程序;
wpa_supplicant程序完成接入点扫描,扫描后将扫描结果通过事件通知framework
framework层的wifi状态追踪器创建wifi监视器接收来自底层的事件,而Wifi监
较佳地,步骤B所述判断是否已激活两个默认网络之前,进一步包括:判断新连
接的网络类型是否是默认的网络,若是,执行所述判断是否已激活两个默认
视器负责从wpa_supplicant程序接收事件通知,Wifi监视器把命令下发给
wpa_supplicant程序,配置并连接接入点,获取IP地址。
层;
条CMD_WIFI_TOGGLED消息;
网络的步
骤,否则执行步骤F。
较佳地,步骤B为:
建立新网络连接后,判断激活默认网络变量是否已经设置并且新连接的网络类型
不等于这个激活默认网络变量已激活的网络类型,
网络并且保留它的网络状态信息,
执行步骤C。
若满足以上条件保留这个新连接的
使这个新的网络和原网络并存并结束本流程,否则,
从以上技术方案可以看出,通过不同于现有技术的网络连接处理流程实现双网卡
同时开启并且分别建立网络连接,在此基础上可以进一步实现双网卡并存通
提高网络的使用率或者基于android的内网和外网同时访问。 信;从而
附图说明
图1为本申请实施例提供的双网卡启动整体实现流程示意图;
图2为现有技术启动双网卡启动网络状态图;
图3为本申请实施例中启动双网卡启动网络状态图。
具体实施方式
本申请的设计思想是:在原有android系统的网络架构设计机制的基础下对网络进
行改造,从而实现多网卡并存的网络架构,提出支持LTE/3G、WLAN等多
并存通信的网络总体架构。 网融合、
为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实
施例对本申请技术方案进行详细阐述。
根据用户策略开启双网卡,实现双网卡并存通信的网络架构是本申请的核心
部分。下面将详细讲述关于移动网络和wifi网络是如何开启的,及两个网
并存。 络如何
双网卡启动过程:
应用层分别调用这两个函数:启用移动数据(setMobileDataEnabled)和启用
WIFI(setWifiEnable)实现移动网络和wifi网络的开启。下面简要说明移动网
wifi网络开启过程。 络、
开启移动网络(LTE/3G)流程说明:
当开启移动网络时,应用程序会调用连接管理器启用移动数据
有
(ileDataEnable)方法,但是这个方法被定义为私
(private)类型,系统级的应用才能调用。本申请实施例中通过如下方
级的应用调用:通过java中的反射就可以实现调用到连接管式实现用户
理器
使能
(ConnectivityManager)类中的启动移动数据(setMobileDataEnable)函数。
移动网络后,接着会发送一条设置移动数据事件
消息,连接服
并处理这条消
通过动
(EVENT_SET_MOBILE_DATA)
务(ConnectivityService)的消息处理单元(handleMessage)将接收
息,在处理该消息的代码中做真正的使能工作:连接接入点(APN),
态主机配置协议(DHCP,Dynamic Host Configuration Protocol)获得IP地
开启wifi流程说明:
址,配置rmnet_usb0使得移动网络状态为已连接,至此移动网络使能完成。
当开启wifi时,应用程序会调用Wifi服务(WifiService)模块中的启用wifi
(setWifiEnable)函数使能wifi,WifiService模块接着向自身发送一条
CMD_WIFI_TOGGLED消息,在处理该消息的代码中做真正的使能工作:
载wifi内核驱动模块,然后启动wpa_supplicant程序
闭wpa_supplicant),wpa_supplicant程序主要是
通过事件通知framework层,在
会创建wifi监视器
首先加
(WifiService负责启动和关
完成AP扫描,扫描后将扫描结果
framework层的wifi状态追踪器(wifiStateTracker)
(WifiMonitor)接收来自底层的事件,而WifiMonitor负责从
wpa_supplicant接收事件通知,同时WifiMontior监视线程会把命令下发给
wpa_supplicant,配置AP,连接AP,获取IP地址,wifi状态为已连接,至
使能完成。 此wifi
在两个网卡都启动后,本申请实施例通过修改framework层的网络连接处理流
程而实现双网卡共存。本申请实施例提供的双网卡启动整体实现流程如图1
包括如下步骤: 所示,
步骤101:判断新连接的网络类型是否是默认的网络(默认的网络指的是wifi
或移动网络,即本申请所要开启的双网卡对应的网络),如果这个网络是默
网络,继续步骤102,否则跳转到步骤107; 认的
步骤102:判断激活默认网络(mActiveDefaultNetwork)变量是否已经设置(之
前已开启过一个网络wifi或移动网络,已经处于连接状态,如果已开启过
mActiveDefaultNetwork值为是1或0,否则值为-1),并且新
等于这个mActiveDefaultNetwork已激活的网络类型,
连接的网络并且保留它的网络状态信息,
流程;否则说明之前没有开启过任
网络,
连接的网络类型不
如果条件满足则保留这个新
使这个新的网络和原网络并存,结束本
何网络,将继续步骤103;
步骤103:使能同步处理函数,该函数的具体处理过程包括:首先判断网络传
输唤醒锁定(mNetTransitionWakeLock)变量是否是保持(held)状态,这里是
判断屏幕是否亮着,若亮着,一秒之后关闭屏幕,之所以一秒钟之后关闭是
应用程序连接新网络所用的时间; 留给
步骤104:更新激活默认网络(mActiveDefaultNetwork)变量实现新网络连接,
步骤105:设置拆解(teardown)请求为否,不关闭网络;
步骤106:更新网络设置;这一步主要是从系统属性里面读出要连接的那个网
络的属性信息,然后把它写到安卓系统的内核
重新设置正在运行的网络类型,同时更新其他的变量;
(kernel)里;
步骤107:改变网络连接,主要包括更新路由设置、域名系统设置、网络接口
步骤108:发送一个广播消息至网络状态服务(NetWorkStateService),用于
该流程与现有技术开启网络流程的区别:
现有技术在两个网络(wifi和3g/lte)同时开启时,虽然在网络设置界面上看
到两个网络都是开启状态,但实质上它的内部程序处理策略是优先选择wifi
程序在内部处理上是只打开了wifi,而将3g/lte关闭,这时虽
只有wifi网络可用,3g/lte是无法使用的。通过
up状态并且有IP地址,如图2所示。
通知网络接口名称发生改变。
设置和连接属性;切换到新连接的网络上;
网络,
然打开了两个网络但
查看网络状态,只有WLAN处于
本专利在启动双网卡时也是先在网络设置界面上使能了wifi和3g/lte后,程
序在内部处理上和现有技术有所区别,本专利在程序的内部会修改网络连接
理流程,使之双网并存。具体实现流程上参见图1。这样当LTE/3G、
网卡同时打开之后,用网络配置(netcfg)命令查看信息,会看
网络已经开启处于UP状态,分别为rmnet_usb0、
IP地址,WIFI还会有MAC地址。这样
IP分流和多流处理了。
的处
WLAN两个
到相应的会有两个
wlan0网络,分别被分配相应的
两个网络已经同时开启,这样就可以进行
LTE/3G、WLAN网卡启动之后的信息,如图3所示。
在双网络并存的情况下,可以进行多网协同分流、多流并发和单业务双网分
实例1:分应用指定网络接口上网。
首先选择浏览器1,通过程序获取这个应用的用户id并将其网络出去的接口
配置到WIFI网络接口上,配置好之后设定其相应的路由策略,然后再选择
2,同样是通过程序获取这个应用的用户id,再将其出去的接
络接口上,分别打开浏览器1和浏览器2上网,它们的
3G/LTE出去,可以用tcpdump抓包工具查看两
多网协同多流并发这项技术,充分、
流,此外还可以实现内网、外网同时访问。下面具体列举一些实例:
浏览器
口配置到3G/LTE网
数据包分别通过WIFI和
个网络接口的数据。在这里体现了
有效的利用了android系统的网络资源。
实例2、在android系统的终端上,用户要下载一些比较大的数据包时,则可
以通过多个网络接口下载数据包,配置路由。数据包一路通过WIFI,一路
通过 3G/LTE,同时从两个网络接口接收数据报文,提高了下载速度,使
网络负载均衡。
实例3、在android系统的终端上,在WIFI网络不能连到外网的情况下,这
时3G/LTE网络并存是很有必要的,如果没有3G/LTE这个网络是无法访问
的,这时体现了多网卡能够同时并存通信的必要性。 internet
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,
凡在本申请技术方案的精神和原则之内,所做的
均应包含在本申请保护的范围之内。 任何修改、等同替换、改进等,
2024年10月13日发(作者:孔寄柔)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.8
(22)申请日 2014.05.19
(71)申请人 普天信息技术有限公司
地址 100080 北京市海淀区海淀北二街6号
(72)发明人 霍平 张凡 姜涌
(74)专利代理机构 北京德琦知识产权代理有限公司
代理人 王民盛
(51)
H04L29/08
H04W76/02
(10)申请公布号 CN 103973800 A
(43)申请公布日 2014.08.06
权利要求说明书 说明书 幅图
(54)发明名称
一种基于安卓系统的双网卡并存的
实现方法
(57)摘要
本申请公开了一种基于安卓系统的
双网卡并存通信方法,包括:应用层分别
调用这启用移动数据函数和启用WIFI函数
实现移动网络和WIFI网络的开启;建立新
网络连接后,判断是否已激活两个默认网
络,若是,保留这个新连接的网络并且保
留它的网络状态信息,使这个新的网络和
原网络并存并结束本流程,否则,判断网
络传输唤醒锁定变量是否是保持状态,若
是,设置时间延迟关闭屏幕,否则更新激
活默认网络变量实现新网络连接,重新设
置正在运行的网络类型,同时更新其他的
变量;设置拆解请求为否并更新网络设
置;更新路由设置、域名系统设置、网络
接口设置和连接属性;切换到新连接的网
络并发送一个广播消息给网络状态服务通
知网络接口名称发生改变。
法律状态
法律状态公告日
法律状态信息
未缴年费专利权终止IPC(主分
类):H04L29/08专利
2023-05-26
号:ZL2申请
日:20140519授权公告
日:20171208
法律状态
专利权的终止
权 利 要 求 说 明 书
1.一种基于安卓系统的双网卡并存通信方法,其特征在于,包括:
A、应用层分别调用这启用移动数据函数和启用WIFI函数实现移动网络和wifi
B、建立新网络连接后,判断是否已激活两个默认网络,若是,保留这个新连接
的网络并且保留它的网络状态信息,使这个新的网络和原网络并存并
则,执行步骤C;
网络的开启;
结束本流程,否
C、判断网络传输唤醒锁定变量是否是保持状态,若是,设置时间延迟关闭屏幕,
D、更新激活默认网络变量实现新网络连接,重新设置正在运行的网络类型,同
E、设置拆解请求为否并更新网络设置;
F、更新路由设置、域名系统设置、网络接口设置和连接属性;切换到新连接的网
络并发送一个广播消息给网络状态服务,用于通知网络接口名称发生
时更新其他的变量;
然后执行步骤D,否则直接执行步骤D;
改变。
2.根据权利要求1所述的方法,其特征在于,步骤A包括:
通过java中的反射实现调用到连接管理器类中的启动移动数据函数;
使能移动网络后,发送一条设置移动数据事件消息至连接服务模块的消息处理单
元;所述消息处理单元连接接入点,通过动态主机配置协议获得IP
rmnet_usb0。 地址,配置
3.根据权利要求1所述的方法,其特征在于,步骤A包括:
调用Wifi服务模块中的启用wifi函数使能wifi,wifi服务模块接着向自身发送一
wifi服务模块加载wifi内核驱动模块,然后启动wpa_supplicant程序;
wpa_supplicant程序完成接入点扫描,扫描后将扫描结果通过事件通知framework
framework层的wifi状态追踪器创建wifi监视器接收来自底层的事件,Wifi监视
器负责从wpa_supplicant程序接收事件通知,Wifi监视器把命令下发
程序,配置并连接接入点,获取IP地址。
层;
条CMD_WIFI_TOGGLED消息;
给wpa_supplicant
4.根据权利要求1所述的方法,其特征在于,步骤B所述判断是否已激活两个
默认网络之前,进一步包括:判断新连接的网络类型是否是默认的网
所述判断是否已激活两个默认网络的步骤,否则络,若是,执行
执行步骤F。
5.根据权利要求1所述的方法,其特征在于,步骤B为:
建立新网络连接后,判断激活默认网络变量是否已经设置并且新连接的网络类型
不等于这个激活默认网络变量已激活的网络类型,若满足以上条件保
网络并且保留它的网络状态信息,使这个新的网
执行步骤C。
留这个新连接的
络和原网络并存并结束本流程,否则,
说 明 书
技术领域
本申请涉及移动通信技术领域,尤其涉及一种基于安卓(android)系统的双网卡
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,
如智能手机和平板电脑。现有大部分移动设备具有多块网卡,如通过
(WIFI)方式接入互联网络的WIFI网卡以及通过移动通
3g/LTE网卡。
并存的实现方法。
局域无线网络
信网络方式接入互联网络的
由于WIFI网络可以免费使用,而3g/LTE网络通常是按照流量计费,现有的
android 系统联网策略通常是WIFI优先,在同一时刻只允许一个网络
说,打开WIFI网络的时候系统默认就会把3G
再开3G网络,系统也会再把3g
默认只使用WIFI网
接口进行通信。具体地
网络给关闭或者是当先打开WIFI网络
关闭;WIFI网络和3g网络同时存在的情况下,系统
络,不允许多网卡同时并存。
然而在实际应用中常常需要多个网卡同时并存,以下列举几个可能的应用场景:
1、不少公司或组织比如银行、税务等都有自己的内部专网(WIFI),日常工作中
经常会碰到需要同时访问内外网的问题,比如在内网上干活,外网(3g/LTE)
料,或者和其他人交换信息等;
上查资
2、当用户的wifi信号很差时、很微弱时,已经无法访问internet,这时系统也不
会自动切换到3g/LTE网络访问internet;
3、当用户有特殊需要,数据业务根据业务类型做多接口分流处理,这时需要多网
4、WIFI带宽受限,希望多网卡同时工作,提高下载速度,负载均衡,提升网络
发明内容
本申请提供了一种基于安卓系统的双网卡并存的实现方法,可以实现两个网卡同
本申请实施例提供的一种基于安卓系统的双网卡并存通信方法,包括:
A、应用层分别调用这启用移动数据函数和启用WIFI函数实现移动网络和wifi
B、建立新网络连接后,判断是否已激活两个默认网络,若是,保留这个新连接
的网络并且保留它的网络状态信息,使这个新的网络和原网络并存并结束本
则,执行步骤C;
网络的开启;
时工作。
资源利用率。
卡通信;
流程,否
C、判断网络传输唤醒锁定变量是否是保持状态,若是,设置时间延迟关闭屏幕,
D、更新激活默认网络变量实现新网络连接,重新设置正在运行的网络类型,同
E、设置拆解请求为否并更新网络设置;
时更新其他的变量;
然后执行步骤D,否则直接执行步骤D;
F、更新路由设置、域名系统设置、网络接口设置和连接属性;切换到新连接的网
较佳地,步骤A包括:
通过java中的反射实现调用到连接管理器类中的启动移动数据函数;
使能移动网络后,发送一条设置移动数据事件消息至连接服务模块的消息处理单
元;所述消息处理单元连接接入点,通过动态主机配置协议获得IP地址,
rmnet_usb0。
络并发送一个广播消息给网络状态服务,用于通知网络接口名称发生改变。
配置
较佳地,步骤A包括:
调用Wifi服务模块中的启用wifi函数使能wifi,wifi服务模块接着向自身发送一
wifi服务模块加载wifi内核驱动模块,然后启动wpa_supplicant程序;
wpa_supplicant程序完成接入点扫描,扫描后将扫描结果通过事件通知framework
framework层的wifi状态追踪器创建wifi监视器接收来自底层的事件,而Wifi监
较佳地,步骤B所述判断是否已激活两个默认网络之前,进一步包括:判断新连
接的网络类型是否是默认的网络,若是,执行所述判断是否已激活两个默认
视器负责从wpa_supplicant程序接收事件通知,Wifi监视器把命令下发给
wpa_supplicant程序,配置并连接接入点,获取IP地址。
层;
条CMD_WIFI_TOGGLED消息;
网络的步
骤,否则执行步骤F。
较佳地,步骤B为:
建立新网络连接后,判断激活默认网络变量是否已经设置并且新连接的网络类型
不等于这个激活默认网络变量已激活的网络类型,
网络并且保留它的网络状态信息,
执行步骤C。
若满足以上条件保留这个新连接的
使这个新的网络和原网络并存并结束本流程,否则,
从以上技术方案可以看出,通过不同于现有技术的网络连接处理流程实现双网卡
同时开启并且分别建立网络连接,在此基础上可以进一步实现双网卡并存通
提高网络的使用率或者基于android的内网和外网同时访问。 信;从而
附图说明
图1为本申请实施例提供的双网卡启动整体实现流程示意图;
图2为现有技术启动双网卡启动网络状态图;
图3为本申请实施例中启动双网卡启动网络状态图。
具体实施方式
本申请的设计思想是:在原有android系统的网络架构设计机制的基础下对网络进
行改造,从而实现多网卡并存的网络架构,提出支持LTE/3G、WLAN等多
并存通信的网络总体架构。 网融合、
为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实
施例对本申请技术方案进行详细阐述。
根据用户策略开启双网卡,实现双网卡并存通信的网络架构是本申请的核心
部分。下面将详细讲述关于移动网络和wifi网络是如何开启的,及两个网
并存。 络如何
双网卡启动过程:
应用层分别调用这两个函数:启用移动数据(setMobileDataEnabled)和启用
WIFI(setWifiEnable)实现移动网络和wifi网络的开启。下面简要说明移动网
wifi网络开启过程。 络、
开启移动网络(LTE/3G)流程说明:
当开启移动网络时,应用程序会调用连接管理器启用移动数据
有
(ileDataEnable)方法,但是这个方法被定义为私
(private)类型,系统级的应用才能调用。本申请实施例中通过如下方
级的应用调用:通过java中的反射就可以实现调用到连接管式实现用户
理器
使能
(ConnectivityManager)类中的启动移动数据(setMobileDataEnable)函数。
移动网络后,接着会发送一条设置移动数据事件
消息,连接服
并处理这条消
通过动
(EVENT_SET_MOBILE_DATA)
务(ConnectivityService)的消息处理单元(handleMessage)将接收
息,在处理该消息的代码中做真正的使能工作:连接接入点(APN),
态主机配置协议(DHCP,Dynamic Host Configuration Protocol)获得IP地
开启wifi流程说明:
址,配置rmnet_usb0使得移动网络状态为已连接,至此移动网络使能完成。
当开启wifi时,应用程序会调用Wifi服务(WifiService)模块中的启用wifi
(setWifiEnable)函数使能wifi,WifiService模块接着向自身发送一条
CMD_WIFI_TOGGLED消息,在处理该消息的代码中做真正的使能工作:
载wifi内核驱动模块,然后启动wpa_supplicant程序
闭wpa_supplicant),wpa_supplicant程序主要是
通过事件通知framework层,在
会创建wifi监视器
首先加
(WifiService负责启动和关
完成AP扫描,扫描后将扫描结果
framework层的wifi状态追踪器(wifiStateTracker)
(WifiMonitor)接收来自底层的事件,而WifiMonitor负责从
wpa_supplicant接收事件通知,同时WifiMontior监视线程会把命令下发给
wpa_supplicant,配置AP,连接AP,获取IP地址,wifi状态为已连接,至
使能完成。 此wifi
在两个网卡都启动后,本申请实施例通过修改framework层的网络连接处理流
程而实现双网卡共存。本申请实施例提供的双网卡启动整体实现流程如图1
包括如下步骤: 所示,
步骤101:判断新连接的网络类型是否是默认的网络(默认的网络指的是wifi
或移动网络,即本申请所要开启的双网卡对应的网络),如果这个网络是默
网络,继续步骤102,否则跳转到步骤107; 认的
步骤102:判断激活默认网络(mActiveDefaultNetwork)变量是否已经设置(之
前已开启过一个网络wifi或移动网络,已经处于连接状态,如果已开启过
mActiveDefaultNetwork值为是1或0,否则值为-1),并且新
等于这个mActiveDefaultNetwork已激活的网络类型,
连接的网络并且保留它的网络状态信息,
流程;否则说明之前没有开启过任
网络,
连接的网络类型不
如果条件满足则保留这个新
使这个新的网络和原网络并存,结束本
何网络,将继续步骤103;
步骤103:使能同步处理函数,该函数的具体处理过程包括:首先判断网络传
输唤醒锁定(mNetTransitionWakeLock)变量是否是保持(held)状态,这里是
判断屏幕是否亮着,若亮着,一秒之后关闭屏幕,之所以一秒钟之后关闭是
应用程序连接新网络所用的时间; 留给
步骤104:更新激活默认网络(mActiveDefaultNetwork)变量实现新网络连接,
步骤105:设置拆解(teardown)请求为否,不关闭网络;
步骤106:更新网络设置;这一步主要是从系统属性里面读出要连接的那个网
络的属性信息,然后把它写到安卓系统的内核
重新设置正在运行的网络类型,同时更新其他的变量;
(kernel)里;
步骤107:改变网络连接,主要包括更新路由设置、域名系统设置、网络接口
步骤108:发送一个广播消息至网络状态服务(NetWorkStateService),用于
该流程与现有技术开启网络流程的区别:
现有技术在两个网络(wifi和3g/lte)同时开启时,虽然在网络设置界面上看
到两个网络都是开启状态,但实质上它的内部程序处理策略是优先选择wifi
程序在内部处理上是只打开了wifi,而将3g/lte关闭,这时虽
只有wifi网络可用,3g/lte是无法使用的。通过
up状态并且有IP地址,如图2所示。
通知网络接口名称发生改变。
设置和连接属性;切换到新连接的网络上;
网络,
然打开了两个网络但
查看网络状态,只有WLAN处于
本专利在启动双网卡时也是先在网络设置界面上使能了wifi和3g/lte后,程
序在内部处理上和现有技术有所区别,本专利在程序的内部会修改网络连接
理流程,使之双网并存。具体实现流程上参见图1。这样当LTE/3G、
网卡同时打开之后,用网络配置(netcfg)命令查看信息,会看
网络已经开启处于UP状态,分别为rmnet_usb0、
IP地址,WIFI还会有MAC地址。这样
IP分流和多流处理了。
的处
WLAN两个
到相应的会有两个
wlan0网络,分别被分配相应的
两个网络已经同时开启,这样就可以进行
LTE/3G、WLAN网卡启动之后的信息,如图3所示。
在双网络并存的情况下,可以进行多网协同分流、多流并发和单业务双网分
实例1:分应用指定网络接口上网。
首先选择浏览器1,通过程序获取这个应用的用户id并将其网络出去的接口
配置到WIFI网络接口上,配置好之后设定其相应的路由策略,然后再选择
2,同样是通过程序获取这个应用的用户id,再将其出去的接
络接口上,分别打开浏览器1和浏览器2上网,它们的
3G/LTE出去,可以用tcpdump抓包工具查看两
多网协同多流并发这项技术,充分、
流,此外还可以实现内网、外网同时访问。下面具体列举一些实例:
浏览器
口配置到3G/LTE网
数据包分别通过WIFI和
个网络接口的数据。在这里体现了
有效的利用了android系统的网络资源。
实例2、在android系统的终端上,用户要下载一些比较大的数据包时,则可
以通过多个网络接口下载数据包,配置路由。数据包一路通过WIFI,一路
通过 3G/LTE,同时从两个网络接口接收数据报文,提高了下载速度,使
网络负载均衡。
实例3、在android系统的终端上,在WIFI网络不能连到外网的情况下,这
时3G/LTE网络并存是很有必要的,如果没有3G/LTE这个网络是无法访问
的,这时体现了多网卡能够同时并存通信的必要性。 internet
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,
凡在本申请技术方案的精神和原则之内,所做的
均应包含在本申请保护的范围之内。 任何修改、等同替换、改进等,