安卓系统Wi-Fi的AP的连接方法及系统的制作方法

文档序号:7980814阅读:302来源:国知局
安卓系统Wi-Fi的AP的连接方法及系统的制作方法
【专利摘要】本发明公开了安卓系统Wi-Fi的AP的连接方法及系统,包括:开启Wi-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中;提取AP信息中BSSID和SSID并保存在List容器中;探测存储单元中AP的SSID的编码格式,如果为非Unicode编码格式,则转换为Unicode编码格式后进入下一步;选择为Unicode编码格式的UI区域Wi-Fi的AP列表中任何一个AP进行连接。本发明可弥补安卓系统本身不支持Wi-Fi中文SSID的缺陷,将安卓终端扫描到的中文命名的AP正常显示,并能够连接此中文SSID的AP。
【专利说明】安卓系统W1-Fi的AP的连接方法及系统
【技术领域】
[0001]本发明涉及安卓系统W1-Fi连接【技术领域】,尤其涉及的是一种安卓系统W1-Fi支持中文SSID的AP的连接方法及系统。
【背景技术】
[0002]安卓是新一代的智能平台,越来越多的电子终端使用安卓作为操作系统,使得安卓系统的电子终端的用户与日俱增。同时,随着W1-Fi技术的发展,特别是安卓系统应用于手机以后,用户对于通过安卓系统手机连接W1-Fi网络的应用也越来越多。所以现在安卓系统中对于W1-Fi支持中文SSID (Service Set Identifier,美国电子电气工程师协会定义的一个或一组基础架构模式无线网络的服务集标识符)的AP (Access Point,即无线路由,下同)的连接支持就显得尤为重要。
[0003]目前的安卓系统中,W1-Fi只支持非中文的SSID,在扫描AP时往往会出现中文SSID乱码的情况,并且不能与此AP进行连接,英文的话则无此现象。目前所有的安卓终端要与中文SSID的AP进行连接需要第三方的W1-Fi管理应用软件来支持,而作为一个初级安卓用户来说他可能并不了解这些,会对安卓系统的兼容性产生质疑,并且操作也更加繁琐。因此,需要终端开发者从根本上解决安卓系统W1-Fi对中文SSID的支持而不需要用户安装额外的应用软件,从而提高易操作性。
[0004]因此,现有技术还有待于改进和发展。

【发明内容】

[0005]本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种安卓系统W1-Fi支持中文SSID的AP的连接方法及系统,可弥补现有安卓系统本身不支持W1-Fi中文SSID的缺陷,能将安卓终端扫描到的中文命名的AP正常显示,并能够连接此中文SSID的AP0
[0006]本发明解决技术问题所采用的技术方案如下:
一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其中,包括步骤:
A、开启安卓系统W1-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中;
B、提取AP信息中BSSID和SSID并保存在List容器中;
C、探测存储单元中AP的SSID的编码格式是否为Unicode编码格式,如果是Unicode编码格式,则进入步骤E ;如果为非Unicode编码格式,则进入步骤D ;
D、转换为Unicode编码格式;
E、选择为Unicode编码格式的UI区域W1-Fi的AP列表中任何一个AP进行连接。
[0007]所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其中,所述步骤D中转换为Unicode编码格式具体包括:
D1、将非Unicode编码格式,转换为UTF8编码格式;
D2、安卓系统JNI层将UTF8编码格式转为安卓可识别的Unicode编码格式。[0008]所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其中,所述步骤Dl具体为:
利用enca库先探测当前的编码格式,接口函数为detected_charset O ,根据探测到结果进行编码转换为UTF8编码格式或直接利用ICU4C库进行编解码,接口函数为ucnv_convert O,转换为UTF8编码格式。
[0009]所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其中,所述步骤B具体为:
提取AP信息固定格式有效数据段中第一个和最后一个关键字段即为BSSID和SSID。
[0010]所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其中,所述步骤E具体包括:
E1、用户选择某一目标连接AP,并下报该AP对应的信息;
E2、提取该AP的BSSID与步骤B中List容器保存的BSSID进行——比对,如果不相同,则返回步骤El ;如果相同,则将相应信息下报至无线网络管理层,并将最终信息写入到配置文件中,之后进行连接行为。
[0011]所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其中,所述步骤E2中提取该AP的BSSID与步骤B中List容器保存的BSSID通过标准库函数strcmp O来完成 比对。
[0012]一种安卓系统W1-Fi支持中文SSID的AP的连接系统,其中,包括:
扫描模块,用于开启安卓系统W1-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中;
数据提取模块,提取AP信息中BSSID和SSID并保存在List容器中;
探测编码模块,用于探测存储单元中AP的SSID的编码格式,如果是Unicode编码格式,则进入下一步操作;如果为非Unicode编码格式,则转换为Unicode编码格式后进入下一步操作;
连接模块,用于选择为Unicode编码格式的UI区域W1-Fi的AP列表中任何一个AP进行连接。
[0013]所述的一种安卓系统W1-Fi支持中文SSID的AP的连接系统,其中,所述探测编码模块还包括:
第一编码模块,用于将非Unicode编码格式,转换为UTF8编码格式;
第二编码模块,用于安卓系统JNI层将前述UTF8编码格式转为安卓可识别的Unicode编码并上报。
[0014]所述的一种安卓系统W1-Fi支持中文SSID的AP的连接系统,其中,所述连接模块还包括:
选择模块,用于用户选择某一目标连接AP,并下报该AP对应的信息;
比对模块,用于提取该目标AP的BSSID与数据提取模块中List容器保存的BSSID进行一一比对,如果不相同,则返回选择模块操作;如果相同,则将相应信息下报至无线网络管理层,并将最终信息写入到配置文件中,之后进行连接行为。
[0015]本发明所提供的一种安卓系统W1-Fi的AP的连接方法及系统,当安卓终端扫描到此AP的SSID时,先去探测该SSID为何种编码格式,如果为非Unicode编码格式时,则需要将此编码格式转换成UTF8,再通过JNI层提供的方法将UTF8编码转换成Unicode编码以实现中文的正常显示。那么在终端扫描到AP之后则将此AP的SSID和BSSID地址保存在List容器中,用户在界面上看到的将会是完整的中文SSID,点击此SSID进行W1-Fi连接则遵循标准的安卓W1-Fi流程,从而大大提高了现有安卓手机用户通过W1-Fi网络应用操作的便捷性。
【专利附图】

【附图说明】
[0016]图1是本发明一种安卓系统W1-Fi支持中文SSID的AP的连接方法的第一实施例的流程图。
[0017]图2是本发明一种安卓系统W1-Fi支持中文SSID的AP的连接方法的第二实施例的流程图。
[0018]图3是本发明一种安卓系统W1-Fi支持中文SSID的AP的连接系统的实施例的原理框图。
【具体实施方式】
[0019]本发明所提供的一种安卓系统W1-Fi的AP的连接方法及系统,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020]针对现有安卓系统W1-Fi不支持中文SSID的AP的连接,导致的在扫描AP时往往会出现中文SSID乱码的情况,并且不能与此AP进行连接的问题,本发明所提供的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,先去探测该SSID为何种编码格式,如果为非 Unicode (万国码,Universal Multiple-Octet Coded Character Set,基于通用字符集(Universal Character Set)的标准发展而来)编码格式时,则需要将此编码格式转换成UTF8 (UCS Transformation Format 一 8_bit,是 Unicode 的一种变长字符编码又称万国码),再通过JNI (JAVA本地调用,Java Native Interface)层提供的方法将UTF8编码转换成Unicode编码以实现中文的正常显示。
[0021]以下将通过具体的应用实施例对本发明基于存储设备的文件扫描方法做进一步说明:
请参见图1,图1是本发明一种安卓系统W1-Fi支持中文SSID的AP的连接方法的第一实施例的流程图。如图1所示,本发明一种安卓系统W1-Fi支持中文SSID的AP的连接方法的第一实施例包括以下步骤:
S1、开启安卓系统W1-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中;
所述存储单元是安卓系统对扫描到所有AP信息的W1-Fi存放的对象,在本实施例中优选为安卓系统专门存放AP信息的mScanResults (用于将Android W1-Fi扫描到的信息保存的对象,是源码中的一个变量名)单元。
[0022]S2、提取 AP 信息中 BSSID (Basic service set identification,基本服务集标识符,用于表示AP的数据链路层MAC地址)和SSID并保存在List容器(List容器是C++/Java标准库定义的顺序容器类型,支持快速插入和删除的语法)中;
所述提取AP的BSSID和SSID信息并保存在List容器中是指终端扫描到的所有AP信息的BSSID和SSID都要解析并保存在List容器中。因为AP信息格式是固定的,格式为: Bssid frequency signal level flags ssid //
附例如下:
40:16:9f:a6:ae:9a (BSSID) 2412 193 [ffPA-PSK-CCMP] TCL_BSP (SSID)
各个有效数据段之间以空格为分割点,只需要提取第一个和最后一个关键字段即BSSID和SSID即可。BSSID为MAC地址,可以直接将提取到的BSSID和SSID保存在List容器中,以便后续步骤的对比。
[0023]S3、探测存储单元中AP的SSID的编码格式是否为Unicode编码格式,如果是Unicode编码格式,则进入步骤S5 ;如果为非Unicode编码格式,则进入步骤S4 ;
S4、转换为Unicode编码格式;
探测编码和重新编辑码的目的在于,安卓系统只能识别Unicode编码格式,如果非Unicode编码格式的话,则会显示乱码,使得用户无法确认;所以在此添加探测编码格式功能,首先确认是否为Unicode编码格式,如果是,则进行下面步骤的工作,如果非Unicode编码格式则进行编码格式转换,转换为Unicode编码格式之后再进行下面步骤的工作。
[0024]AP (无线路由)的SSID —般由PC浏览器通过AP的Web服务器访问配置,而国内大多数AP的Web服务器中文编码是GB2312(中国国家标准简体中文字符集,通行于中国大陆;新加坡等地也采用此编码)编码格式或者其他的编码格式,从而通过PC配置AP的SSID为非Unicode编码格式,而安卓的Java层只能解析Unicode编码,故当安卓终端扫描到此AP的SSID时,先去探测该SSID为何种编码格式,如果为非Unicode编码格式时,需要先将其转换为Unicode编码格式,之后才能进行下一步操作。
`[0025]S5、选择为Unicode编码格式的Π区域W1-Fi的AP列表中任何一个AP进行连接。
[0026]通过前述步骤的探测编码和重新编码,用户在界面上看到的将会是完整的中文SSID,遵循标准的安卓的W1-Fi流程,点击此SSID进行W1-Fi连接则可完成连接中文SSID的AP。
[0027]通过本发明提供的上述方法,安卓系统用户不需要额外安装第三方应用软件,就可以从根本上解决安卓系统W1-Fi对中文SSID的不支持问题。
[0028]以下将通过本发明的第二实施例,对本发明的一种安卓系统W1-Fi支持中文SSID的AP的连接方法作进一步详细的说明。
[0029]如图2所示,图2是本发明一种安卓系统W1-Fi支持中文SSID的AP的连接方法的第二实施例的流程图,所述方法具体包括以下步骤:
521、开启安卓系统W1-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中;
522、提取AP信息中BSSID和SSID并保存在List容器中;
523、探测存储单元中AP的SSID的编码格式是否为Unicode编码格式,如果是Unicode编码格式,则进入步骤S26 ;如果为非Unicode编码格式,则进入步骤S24 ;
所述步骤S21、S22、S23与第一实施例的S1、S2、S3步骤相同,在此不再赘述。
[0030]S24、转码为UTF8 ;即将非Unicode编码格式转换为UTF8格式;
S25、转码为Unicode ;即前述步骤得到的UTF8格式再转换成Unicode编码格式,并进入步骤S26 ;
采用上述方法步骤中探测编码和重新编辑码的目的在于安卓系统只能识别Unicode编码格式,如果非Unicode编码格式的话,则会显示乱码,使得用户无法确认;所以添加探测编码格式功能,首先确认是否为Unicode编码格式,如果是,则进行下面步骤的工作,如果非Unicode编码格式则进行编码格式转换,转换为Unicode编码格式。
[0031]因为目前的安卓系统的JNI层支持UTF8到Unicode的转码,其他格式不支持,为了保证安卓本身接口不变所以先将非Unicode编码格式转为UTF8格式。本实施例中采用以下两种方法之一将非Unicode编码格式转为UTF8格式:方法1:利用enca (ExtremelyNaive Charset Analyser,分析编码)库先探测到当前的编码格式,接口函数为detected_charset O ;然后根据探测到结果进行编码。方法2:直接利用ICU4C库(是ICU在C/C++平台下的版本,ICU即International Component for Unicode是基于〃IBM公共许可证〃的,与开源组织合作研究的,用于支持软件国际化的开源项目库)进行编解码,接口函数函数为 ucnv_convert O °
[0032]进一步、再将UTF-8格式转化Unicode编码格式:此转化由安卓系统基础库libutils.so (libutils.so 是 Android 的底层库)提供的 Stringl6 类(由 Iibutils.so提供的表示双字节字符串的类)实现,具体调用Stringie类实例初始化接口,Stringl6::Stringl6(const String8& ο);
例如:har *szDst; Stringl6 str (szDst);
再通过安卓系统dalvikVM (VM, Virtual Machine, DalvikVM是Google公司自己设计用于安卓平台的Java虚拟机)提供的NewString函数接口创建一个Unicode格式的String对象,即可转换为Unicode编码格式。
[0033]例如:env->NewString ((const jchar*) str.string (), str.size ())
526、选择为Unicode编码格式 的Π区域WiFi的AP列表中任何一个AP发起连接请
求;
527、下报该目标AP的信息;
528、提取该AP的BSSID;
529、将目标AP的BSSID与List中所有的AP的BSSID进行比对是否一致,是,则进入步骤S30 ;否,则返回步骤S26 ;
530、将比对结果下报至无线网络管理层;
531、连接。
[0034]因为目标AP信息也是固定的格式,同步骤S22提取BSSID和SSID的方法一样可以获取到目标AP信息中的BSSID,在对List容器中保存的AP信息进行完全对比,此比对可以通过标准库函数strcmpO来完成,通过对容器元素的遍历来一一比对,直到比对结果一致,则将比对结果下报至无线网络管理层,本实施例中无线网络管理层优选为安卓系统的wpa_supplicant层,最终将相关信息写入配置文件/etc/wpa_supplicant.conf中,从而完成安卓W1-Fi的标准流程,实现连接。
[0035]值得注意的是,此处的AP信息进行对比主要是采用BSSID比对,因为SSID是可以重复的,而BSSID则是唯一的,所以在此用BSSID作为关键字进行对比,以便唯一确认用户AP0
[0036]由上述第二实施例可以看出,本实施例提供的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,通过安卓终端扫描到AP的SSID时,先去探测该SSID为何种编码格式,如果为非Unicode编码格式时,则需要将此编码格式转换成UTF8,再通过JNI层提供的方法将UTF8编码转换成Unicode编码以实现中文的正常显示。进一步,在终端扫描到AP之后则将此AP的SSID和BSSID地址保存在List容器中,用户在界面上看到的将会是完整的中文SSID,点击此SSID进行W1-Fi连接,从而解决了目前安卓系统本身不支持W1-Fi中文SSID的问题。
[0037]基于上述实施例,本发明实施例三还提供了一种安卓系统W1-Fi支持中文SSID的AP的连接系统,如图3所示,图3是本发明一种安卓系统W1-Fi支持中文SSID的AP的连接系统的实施例的原理框图。
[0038]所述系统包括:
扫描模块301,用于开启安卓系统W1-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中;所述存储单元在本实施例中优选为安卓系统专门存放AP信息的mScanResults单元。
[0039]数据提取模块302,提取AP信息中BSSID和SSID并保存在List容器中;
探测编码模块303,用于探测存储单元中AP的SSID的编码格式,如果是Unicode编码
格式,则进入下一步操作;如果为非Unicode编码格式,则转换为Unicode编码格式后进入下一步操作;
连接模块304,用于选择为Unicode编码格式的Π区域W1-Fi的AP列表中任何一个AP进行连接。
[0040]进一步,所述探测编码模块303还包括:
第一编码模块3031,用于将非Unicode编码格式,转换为UTF8编码格式;
第二编码模块3032,用于安卓系统JNI层将前述UTF8编码格式转为安卓可识别的Unicode编码并上报。
[0041 ] 进一步,所述连接模块304还包括:
选择模块3041,用于用户选择某一目标连接AP,并下报该AP对应的信息;
比对模块3042,用于提取该目标AP的BSSID与数据提取模块中List容器保存的BSSID进行一一比对,如果不相同,则返回选择模块操作;如果相同,则将相应信息下报至无线网络管理层,本实施例中优选为安卓系统的wpa_SUpplicant层,并将最终信息写入到配置文件/etc/wpa_supplicant.conf中,之后进行连接行为。
[0042]综上所述,本发明所提供的一种安卓系统W1-Fi的AP的连接方法及系统,当安卓终端扫描到此AP的SSID时,先去探测该SSID为何种编码格式,如果为非Unicode编码格式时,则需要将此编码格式转换成UTF8 (UCS Transformation Format 一 8_bit,是Unicode的一种变长字符编码又称万国码),再通过JNI层提供的方法将UTF8编码转换成Unicode编码以实现中文的正常显示。那么在终端扫描到AP之后则将此AP的SSID和BSSID (Basic service set identification,基本服务集标识符,用于表示AP的数据链路层MAC地址)地址保存在List容器(List容器参见C++/Java容器说明)中,用户在界面上看到的将会是完整的中文SSID,点击此SSID进行W1-Fi连接则遵循标准的安卓W1-Fi流程,从而大大提高了现有安卓手机用户通过W1-Fi网络应用操作的便捷性。
[0043]应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【权利要求】
1.一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其特征在于,包括步骤: A、开启安卓系统W1-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中; B、提取AP信息中BSSID和SSID并保存在List容器中; C、探测存储单元中AP的SSID的编码格式是否为Unicode编码格式,如果是Unicode编码格式,则进入步骤E ;如果为非Unicode编码格式,则进入步骤D ; D、转换为Unicode编码格式; E、选择为Unicode编码格式的UI区域W1-Fi的AP列表中任何一个AP进行连接。
2.根据权利要求1所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其特征在于,所述步骤D中转换为Unicode编码格式具体包括: D1、将非Unicode编码格式,转换为UTF8编码格式; D2、安卓系统JNI层将UTF8编码格式转为安卓可识别的Unicode编码格式。
3.根据权利要求2所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其特征在于,所述步骤Dl具体为: 利用enca库先探测当前的编码格式,接口函数为detected_charset O ,根据探测到结果进行编码转换为UTF8编码格式或 直接利用ICU4C库进行编解码,接口函数函数为ucnv_convert O,转换为UTF8编码格式。
4.根据权利要求1所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其特征在于,所述步骤B具体为: 提取AP信息固定格式有效数据段中第一个和最后一个关键字段即为BSSID和SSID。
5.根据权利要求1所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其特征在于,所述步骤E具体包括: El、用户选择某一目标连接AP,并下报该AP对应的信息; E2、提取该AP的BSSID与步骤B中List容器保存的BSSID进行——比对,如果不相同,则返回步骤El ;如果相同,则将相应信息下报至无线网络管理层,并将最终信息写入到配置文件中,之后进行连接行为。
6.根据权利要求5所述的一种安卓系统W1-Fi支持中文SSID的AP的连接方法,其特征在于,所述步骤E2中提取该AP的BSSID与步骤B中List容器保存的BSSID通过标准库函数strcmpO来完成--比对。
7.一种安卓系统W1-Fi支持中文SSID的AP的连接系统,其特征在于,包括: 扫描模块,用于开启安卓系统W1-Fi,发起AP扫描,并将扫描到的AP信息保存在存储单元中; 数据提取模块,提取AP信息中BSSID和SSID并保存在List容器中; 探测编码模块,用于探测存储单元中AP的SSID的编码格式,如果是Unicode编码格式,则进入下一步操作;如果为非Unicode编码格式,则转换为Unicode编码格式后进入下一步操作; 连接模块,用于选择为Unicode编码格式的UI区域W1-Fi的AP列表中任何一个AP进行连接。
8.根据权利要求7所述的一种安卓系统W1-Fi支持中文SSID的AP的连接系统,其特征在于,所述探测编码模块还包括:第一编码模块,用于将非Unicode编码格式,转换为UTF8编码格式; 第二编码模块,用于安卓系统JNI层将前述UTF8编码格式转为安卓可识别的Unicode编码并上报。
9.根据权利要求7所述的一种安卓系统W1-Fi支持中文SSID的AP的连接系统,其特征在于,所述连接模块还包括: 选择模块,用于用户选择某一目标连接AP,并下报该AP对应的信息; 比对模块,用于提取该目标AP的BSSID与数据提取模块中List容器保存的BSSID进行一一比对,如果不相同,则返`回选择模块操作;如果相同,则将相应信息下报至无线网络管理层,并将最终信息写入到配置文件中,之后进行连接行为。
【文档编号】H04W76/02GK103517385SQ201210238701
【公开日】2014年1月15日 申请日期:2012年7月11日 优先权日:2012年7月11日
【发明者】崔旋, 周志军 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1