切换内外置Wi-Fi的方法和Android终端的制作方法

文档序号:8002232阅读:345来源:国知局
切换内外置Wi-Fi的方法和Android终端的制作方法
【专利摘要】本发明公开了切换内外置Wi-Fi的方法和Android终端,其方法包括A、在Android终端的Wi-Fi设置功能开启时,获取当前Wi-Fi模块的数量;B、判断Wi-Fi模块的数量是大于1还是等于1;当大于1时,判断内置Wi-Fi模块被选择还是外置Wi-Fi模块被选择;C、当内置Wi-Fi模块被选择时,加载内置Wi-Fi模块;当外置Wi-Fi模块被选择时,判断内置Wi-Fi模块是否被加载;若内置Wi-Fi模块已被加载,则卸载内置Wi-Fi模块后开启外置Wi-Fi模块。本发明实现了内置Wi-Fi模块和外置Wi-Fi模块的智能切换,使Android终端的上网功能不受内置Wi-Fi模块的限制。
【专利说明】切换内外置W1-Fi的方法和Android终端
【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种切换内外置W1-Fi的方法和Android终端。
【背景技术】
[0002]移动互联网设备(如智能手机、平板电脑等)一般只有一个内置的W1-Fi模块,随着智能系统的普及,越来越多的智能操作系统被移植到电视平台上。目前智能电视的主流操作系统一般采用Android系统,然而Android智能电视只能支持一个内置W1-Fi设备,处于各种因素的影响可能会导致内置W1-Fi的效果不是很理想,或者当用户想要选择性能更好的W1-Fi适配器时,无法自行更换W1-Fi模块,使智能电视的上网功能受到了限制。
[0003]另外,即使有些Android终端通过USB 口外扩了 W1-Fi模块,但Android系统没有提供对应的驱动来加载该外置的W1-Fi模块,无法实现智能的切换用户想用的W1-Fi模块,影响了用户的使用体验,不利于智能终端的推广。

【发明内容】

[0004]鉴于上述现有技术的不足之处,本发明的目的在于提供一种切换内外置W1-Fi的方法和Android终端,以解决现有Android终端不能更换外置W1-Fi模块的问题。
[0005]为了达到上述目的,本发明采取了以下技术方案:
一种Android终端切换内外置W1-Fi的方法,其包括:
A、在Android终端的W1-Fi设置功能开启时,获取当前W1-Fi模块的数量;
B、判断所述W1-Fi模块的数量是大于I还是等于I;当W1-Fi模块的数量大于I时,判断内置W1-Fi模块被选择还是外置W1-Fi模块被选择;
C、当内置W1-Fi模块被选择时,加载内置W1-Fi模块;当外置W1-Fi模块被选择时,判断所述内置W1-Fi模块是否被加载;若内置W1-Fi模块已被加载,则卸载所述内置W1-Fi模块后开启外置W1-Fi模块。
[0006]所述的Android终端切换内外置W1-Fi的方法中,在所述步骤B中,当W1-Fi模块的数量等于I时,直接加载所述内置W1-Fi模块,开启Android终端的W1-Fi功能。
[0007]所述的Android终端切换内外置W1-Fi的方法中,在所述步骤C中,若内置W1-Fi模块未被加载,则关闭内置W1-Fi模块供电后开启所述外置W1-Fi模块。
[0008]所述的Android终端切换内外置W1-Fi的方法中,在所述步骤C中,所述若内置W1-Fi模块已被加载,则卸载所述内置W1-Fi模块后开启外置W1-Fi模块具体包括:
Cl、若内置W1-Fi模块已被加载,则通过Android终端的第一接口关闭内置W1-Fi模
块;
C2、通过Android终端的第二接口关闭内置W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块;
C3、开启Android终端的外置W1-Fi模块。[0009]所述的Android终端切换内外置W1-Fi的方法中,在所述步骤A中,在获取当前W1-Fi模块的数量时,通过读取W1-Fi模块的pid和vid来获取W1-Fi模块的数量。
[0010]一种用于实现上述切换内外置W1-Fi的方法的Android终端,其特征在于,包括: 内置W1-Fi模块;
外置W1-Fi模块;
W1-Fi功能设置模块,用于设置Android终端的W1-Fi功能;
获取模块,用于获取当前W1-Fi模块的数量;
判断模块,用于判断所述W1-Fi模块的数量是大于I还是等于1,及判断内置W1-Fi模块被选择还是外置W1-Fi模块被选择,以及在外置W1-Fi模块被选择时,判断内置W1-Fi模块是否被加载;
卸载模块,用于卸载所述内置W1-Fi模块;
加载模块,用于加载所述内置W1-Fi模块或者外置W1-Fi模块。
[0011]所述的Android终端中,W1-Fi功能设置模块,还用于在W1-Fi模块的数量为一个时,控制所述加载模块加载内置W1-Fi模块,开启Android终端的W1-Fi功能。
[0012]所述的Android终端中,所述卸载模块,包括:
第一接口,用于关闭内置W1-Fi模块;
第二接口,用于读取内置W1-Fi模块的供电状态,及在关闭内置W1-Fi模块时,关闭内置W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块。
[0013]所述的Android终端中,所述第一接口为public booleansetffifiEnabled(boolean enabled)。
[0014]所述的Android终端中,所述第二接口包括用于读取W1-Fi模块的GPIO的供电状态的读接口和用于关闭W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块的设置接口。
[0015]相较于现有技术,本发明提供的切换内外置W1-Fi的方法和Android终端,通过先获取当前W1-Fi模块的数量,在W1-Fi模块的数量大于I时,根据用户的选择判断用户选择的是内置W1-Fi模块还是外置W1-Fi模块,当选择了内置W1-Fi模块时,直接加载内置W1-Fi模块即可;当选择了外置W1-Fi模块时,需要判断内置W1-Fi模块是否被加载;若内置W1-Fi模块已被加载,则卸载所述内置W1-Fi模块后开启外置W1-Fi模块,实现了Android终端内外置W1-Fi模块的切换,从而实现了一个Android终端支持多个W1-Fi模块的功能。
【专利附图】

【附图说明】
[0016]图1为本发明较佳实施例Android终端切换内外置W1-Fi的方法的流程图。
[0017]图2为本发明较佳实施例Android终端的结构框图。
【具体实施方式】
[0018]本发明提供一种切换内外置W1-Fi的方法和Android终端,通过Android终端的USB 口外扩W1-Fi模块,使得用户在不用更换内置W1-Fi模块的情况下,通过Android终端预留的USB 口来外接一个W1-Fi模块,并通过相应的应用程序任意的选择使用内置W1-Fi模块还是外置W1-Fi模块,实现了内外置W1-Fi模块的切换功能。[0019]为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0020]本发明的Android终端为带Android操作系统的智能手机、平板电脑、智能电视等。请参阅图1,其为本发明较佳实施例Android终端切换内外置W1-Fi的方法的流程图。如图1所示,所述的Android终端切换内外置W1-Fi的方法包括:
S100、在Android终端的W1-Fi设置功能开启时,获取当前W1-Fi模块的数量。
[0021]以智能电视为例,当智能电视通过USB 口外接了外置W1-Fi模块时,用户如果想要设置智能电视的W1-Fi功能,需要通过用户界面的“设置”选项开启W1-Fi模块的设置功能。
[0022]在获取当前W1-Fi模块的数量时,通过读取W1-Fi模块的pid和vid来获取W1-Fi模块的数量。在读取W1-Fi模块的pid和vid时通过在Android系统的HAL层(HardwareAbstraction Layer,硬件抽象层)实现接口 int wifi_get_deviceNum(),从 USB 总线上读取USB设备(即外置W1-Fi模块)的pid (product ID,产品标识)和vid (vendor ID,厂商标识),因为不同的USB设备的pid和vid不同,本实施例根据判断USB总线上注册的pid和vid即可判断该USB设备是否是W1-Fi设备并结合内置W1-Fi模块返回一个值,该接口的返回值即为当前W1-Fi模块数量。
[0023]应当说明的是,外置W1-Fi模块还通过其它接口接入Android终端,只要能够通过在相应的总线读取到外置W1-Fi模块的pid和vid即可,本发明对此不作限制。
[0024]S200、判断所述W1-Fi模块的数量是大于I还是等于I ;当W1-Fi模块的数量大于I时,判断内置W1-Fi模块被选择还是外置W1-Fi模块被选择。
[0025]本实施例中,在接口 int wifi_get_deviceNum()返回W1-Fi模块的数量后,还需进一步对W1-Fi模块的数量进行判断。当W1-Fi模块的数量等于I时(即返回值为1),表示该Android终端中只有一个内置W1-Fi模块,故不存在W1-Fi模块的切换问题,此时用户只能选择内置W1-Fi模块,用户通过用户界面的“设置”选择打开W1-Fi即可直接加载内置W1-Fi模块,开启Android终端的W1-Fi功能打开W1-Fi网络。当W1-Fi模块的数量大于I时,表示Android终端中有一个内置W1-Fi模块和至少一个外置W1-Fi模块,此时用户可通过用户界面的“设置”选项进行选择,在用户选择后Android终端还需判断用户选择了内置W1-Fi模块还是外置W1-Fi模块。
[0026]S300、当内置W1-Fi模块被选择时,加载内置W1-Fi模块;当外置W1-Fi模块被选择时,判断所述内置W1-Fi模块是否被加载;若内置W1-Fi模块已被加载,则卸载所述内置W1-Fi模块后开启外置W1-Fi模块。
[0027]本发明实施例中,如果用户选择了内置W1-Fi模块,在打开W1-Fi时,直接加载内置W1-Fi模块的驱动文件即可打开内置W1-Fi模块,开启Android终端的W1-Fi功能。如果用户选择了外置W1-Fi模块,此时Android终端需要先判断内置W1-Fi模块的状态,即判断内置W1-Fi模块是否已被加载。若内置W1-Fi模块已被加载,则需先则通过Android终端的第一接口关闭内置W1-Fi模块;之后,通过Android终端的第二接口关闭内置W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块,再开启Android终端的外置W1-Fi模块,开启Android终端的W1-Fi功能。若内置W1-Fi模块未被加载,则只需通过第二接口关闭内置W1-Fi模块供电后开启所述外置W1-Fi模块即可。[0028]具体实施时,在Android系统需要打开W1-Fi模块时,会产生一个wlanO (即无线局域网),通常情况下Android终端只需打开一个W1-Fi模块,由此只会产生一个wlanO。由于W1-Fi在开启时会注册一个wlanO的interfacename (即设备节点),在开启W1-Fi时,Android系统的应用会去获取该interfacename,如果为NULL (零),则表示没有任何W1-Fi模块被打开,如果存在wlanO的interfacename,不论该wlanO是up状态(即上电状态)还是down状态(掉电状态),都要再去判断内置W1-Fi模块的GPIO (General PurposeInput Output,通用输入/输出)状态。如果该GPIO为1,则表示内置W1-Fi模块驱动文件已经加载,此时调用 Android 终端的第一接口 public boolean setffif iEnabled (booleanenabled)去关闭内置W1-Fi模块[在第一接口关闭内置W1-Fi模块时,令第一接口输出false,即 public boolean setWifiEnabled(false)来关闭内置 W1-Fi 模块],之后通过第二接口读取W1-Fi模块的供电,在第一接口关闭内置W1-Fi模块时,第二接口关闭内置W1-Fi模块的供电,使GPIO置0(即使该GPIO掉电)卸载内置W1-Fi模块,再打开外置W1-Fi模块加载外置W1-Fi模块的驱动文件开启Android终端的W1-Fi功能。如果该GPIO为0,则表示内置W1-Fi模块驱动文件未被加载,此时只需通过第二接口关闭内置W1-Fi模块供电,使GPIO掉电卸载内置W1-Fi模块,再打开外置W1-Fi模块加载外置W1-Fi模块的驱动文件开启Android终端的W1-Fi功能。
[0029]但是,Android系统本身不支持读写GPIO的操作(即无法获取和设置GPIO的状态),因此需要W1-Fi芯片的厂商提供读写和设置GPIO的相应接口(即第二接口),通过该第二接口的调用来完成GPIO的读写和设置。
[0030]本实施例中,所述第二接口包括:用于读取W1-Fi模块的GPIO的供电状态的读接口 int get_wifi_switch O和用于设置W1-Fi模块的GPIO的供电状态的设置接口 intset_wifi_switch(int state)。其中,int get_wifi_switch()接口的功能为获取当前内置W1-Fi模块的GPIO状态,即读取W1-Fi芯片的上电/下电管脚的电平状态,而读取该管脚需要驱动的支持,Android—般支持该功能。int set_wifi_switch(int state)接口功能为设置内置W1-Fi模块的GPIO的状态,即完成对W1-Fi芯片上电/下电管脚的置位功能,在public boolean setffif iEnabled (false)接口关闭内置 W1-Fi 模块时,该 int set_wif i_switch (int state)接口设置内置W1-Fi模块的GPIO为0,卸载该内置W1-Fi模块。由于W1-Fi芯片厂商出于对自己硬件设计的保护,不会对外公开其操作方法和源码,因此本发明只需要求W1-Fi芯片厂商提供W1-Fi芯片的操作方式(即二进制文件),即上述两个操作接口即可,通过上述两个接口来完成对GPIO的读写和设置。
[0031]并且,由于Android系统本身不支持读写GPIO的操作,无法获取和设置GPIO的状态,在设置Android终端的W1-Fi功能时,需要Android终端自身实现读接口 int get_wifi_switch O 和设置接口 int set_wifi_switch (int state)。对于读接口 int get_wifi_switch O ,该读接口 int get_wif i_switch O返回值即为当前内置W1-Fi模块的GPIO状态,返回值为I时表示该GPIO为高电平,返回值为O时表示该GPIO为低电平。而对于设置接口 int set_wifi_switch(int state)的传入参数state即为设置GPIO的电平状态,当传入参数为I时,表示使该GPIO上电,传入参数为O时表示使该GPIO掉电。
[0032]在具体设置W1-Fi功能的过程中,用户通过Android终端的用户界面选择“设置”选项后,Android系统便会调用读接口 int get_wifi_switch O ,获取到内置W1-Fi模块的GPIO状态,如果为GPIO为I,并且如果用户需要打开内置W1-Fi模块,则此时默认开启的是内置W1-Fi模块;当内外置W1-Fi模块共同存在时,如果不是用户强制使用外置W1-Fi模块,那么Android终端还是开启内置W1-Fi模块,只有在用户选择开启外置W1-Fi模块的情况下,才会禁用内置W1-Fi模块而开启外置W1-Fi模块。
[0033]本发明实施例中,上述的int wifi_get_deviceNum()接口、int get_wifi_switch ()接口、int set_wif i_switch ()接口都需要在Android系统的HAL层独立实现,通过Android系统的Native层对上层应用提供接口。在Android系统中Native层是对HAL层接口的封装,因为Android系统上层应用软件为java程序,而java不能直接调用c文件(如C语言文件和C++文件),因此必须通过Native语言的封装才可以访问上述接口。在设计时软件开发者可以通过Android系统的其他模块Native层语言的规则完成对该接口的封装。
[0034]应当说明的是:上述的int wifi_get_deviceNum()接口、int get_wifi_switch ()接口、int set_wifi_switch O接口均为程序实现接口,最终的设置通过Android终端的用户界面的“设置”选项自动完成调用。用户在选择“设置”选项后,该程序自动获取当前W1-Fi模块数量,判断出内、外置W1-Fi模块的数量,然后根据用户的选择自动完成读取GPIO状态和设置GPIO状态。[0035]以下为读取和设置W1-Fi模块的GPIO状态的事例实现方式和说明: int get_wifi_switch O
{
return NativeGetffifiSwitchO ; //该接口为wifi芯片厂商提供的读取GPIO接口
}
int set_wifi_switch(int state)

{
return NativeSetffifiSwitch (state) ; // 该接口 为 wifi 芯片厂商提供写 GPIO 接口
}
基于上述的Android终端切换内外置W1-Fi的方法,本发明实施例还相应提供一种Android终端,请参阅图2,其包括:内置W1-Fi模块10、外置W1-Fi模块20、W1-Fi功能设置模块30、获取模块40、判断模块50、卸载模块60和加载模块70。
[0036]其中,所述外置W1-Fi模块20通过USB 口与W1-Fi功能设置模块30连接。所述W1-Fi功能设置模块30通过Android终端的用户界面设置Android终端的W1-Fi功能。在W1-Fi功能设置模块30设置Android终端的W1-Fi功能时,通过获取模块40获取当前W1-Fi模块的数量。之后由判断模块50判断所述W1-Fi模块的数量是大于I还是等于1,如果等于I表示Android终端只有一个内置W1-Fi模块10,此时W1-Fi功能设置模块30直接控制加载模块70加载所述内置W1-Fi模块10,开启Android终端的W1-Fi功能;如果判断模块50判断W1-Fi模块的数量大于1,则还需判断内置W1-Fi模块10被选择还是外置W1-Fi模块20被选择。当内置W1-Fi模块10被选择时,通过W1-Fi功能设置模块30控制所述加载模块70直接加载内置W1-Fi模块10,开启Android终端的W1-Fi功能;当外置W1-Fi模块20被选择时,此时需要判断模块50判断内置W1-Fi模块10是否被加载;或被加载则控制卸载模块60先关闭内置W1-Fi模块10,再关闭内置W1-Fi模块10的供电卸载所述内置W1-Fi模块10后,再由加载模块70加载所述外置W1-Fi模块20。
[0037]具体实施时,所述卸载模块60包括第一接口和第二接口。其中,所述第一接口为public boolean setffif iEnabled (boolean enabled),用于关闭内置 W1-Fi 模块 10。第二接口用于读取内置W1-Fi模块10的供电状态,及在关闭内置W1-Fi模块时,关闭内置W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块。所述第二接口具体包括:用于读取W1-Fi模块的GPIO的供电状态的读接口和,及在关闭内置W1-Fi模块时,关闭内置W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块。由于该Android终端切换中各个模块的功能在上述方法中已进行了详细的描述,此处不再赘述。
[0038]综上所述,本发明实现了内置W1-Fi模块和外置W1-Fi模块的智能切换,其设置简单方便,使Android终端的上网功能不受内置W1-Fi模块的限制,为用户提供了选择,提升了用户体验,有利于智能终端的推广使用。
[0039]可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种Android终端切换内外置W1-Fi的方法,其特征在于,包括: A、在Android终端的W1-Fi设置功能开启时,获取当前W1-Fi模块的数量; B、判断所述W1-Fi模块的数量是大于I还是等于I;当W1-Fi模块的数量大于I时,判断内置W1-Fi模块被选择还是外置W1-Fi模块被选择; C、当内置W1-Fi模块被选择时,加载内置W1-Fi模块;当外置W1-Fi模块被选择时,判断所述内置W1-Fi模块是否被加载;若内置W1-Fi模块已被加载,则卸载所述内置W1-Fi模块后开启外置W1-Fi模块。
2.根据权利要求1所述的Android终端切换内外置W1-Fi的方法,其特征在于,在所述步骤B中,当W1-Fi模块的数量等于I时,直接加载所述内置W1-Fi模块,开启Android终端的W1-Fi功能。
3.根据权利要求1所述的Android终端切换内外置W1-Fi的方法,其特征在于,在所述步骤C中,若内置W1-Fi模块未被加载,则关闭内置W1-Fi模块供电后开启所述外置W1-Fi模块。
4.根据权利要求1或3所述的Android终端切换内外置W1-Fi的方法,其特征在于,在所述步骤C中,所述若内置W1-Fi模块已被加载,则卸载所述内置W1-Fi模块后开启外置W1-Fi模块具体包括: Cl、若内置W1-Fi模块已被加载,则通过Android终端的第一接口关闭内置W1-Fi模块; C2、通过Android终端的第二接口关闭内置W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块; C3、开启Android终端的外置W1-Fi模块。
5.根据权利要求1所述的Android终端切换内外置W1-Fi的方法,其特征在于,在所述步骤A中,在获取当前W1-Fi模块的数量时,通过读取W1-Fi模块的pid和vid来获取W1-Fi模块的数量。
6.一种用于实现权利要求1所述切换内外置W1-Fi的方法的Android终端,其特征在于,包括: 内置W1-Fi模块; 外置W1-Fi模块; W1-Fi功能设置模块,用于设置Android终端的W1-Fi功能; 获取模块,用于获取当前W1-Fi模块的数量; 判断模块,用于判断所述W1-Fi模块的数量是大于I还是等于1,及判断内置W1-Fi模块被选择还是外置W1-Fi模块被选择,以及在外置W1-Fi模块被选择时,判断内置W1-Fi模块是否被加载; 卸载模块,用于卸载所述内置W1-Fi模块; 加载模块,用于加载所述内置W1-Fi模块或者外置W1-Fi模块。
7.根据权利要求6所述的Android终端,其特征在于,W1-Fi功能设置模块,还用于在W1-Fi模块的数量为一个时,控制所述加载模块加载内置W1-Fi模块,开启Android终端的W1-Fi功能。
8.根据权利要求6所述的Android终端,其特征在于,所述卸载模块,包括:第一接口,用于关闭内置W1-Fi模块; 第二接口,用于读取内置W1-Fi模块的供电状态,及在关闭内置W1-Fi模块时,关闭内置W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块。
9.根据权利要求8所述的Android终端,其特征在于,所述第一接口为publicbooleansetffifiEnabled(boolean enabled)。
10.根据权利要求8所述的Android终端,其特征在于,所述第二接口包括用于读取W1-Fi模块的GPIO的供电状态的读接口和用于关闭W1-Fi模块的GPIO的供电,卸载所述内置W1-Fi模块的设置接 口。
【文档编号】H04W36/00GK103546927SQ201310290878
【公开日】2014年1月29日 申请日期:2013年7月11日 优先权日:2013年7月11日
【发明者】崔旋 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1