Android系统终端实现3G WIFI无线漫游

2022-04-20 12:15:17文琰伯
导读 大家好,我是本期栏目编辑小友,现在为大家讲解Android系统终端实现3G WIFI无线漫游问题。 随着人们日常生活和工作节奏的不断加快,人们越

大家好,我是本期栏目编辑小友,现在为大家讲解Android系统终端实现3G WIFI无线漫游问题。

随着人们日常生活和工作节奏的不断加快,人们越来越重视信息获取、移动办公和移动娱乐的便捷性。无线连接是满足这种快速增长的需求的唯一途径。无线连接的两大主角是3G(第三代)技术和W1FI(无线保真)技术。

本文针对安卓系统中流行的手机终端3G和wIFI连接机制,实现了3G和wIFI的无线漫游。

1安卓平台介绍

安卓是谷歌推出的最新手机平台,是一个真正开放的移动设备集成平台。它包括操作系统、用户界面、应用程序以及手机工作所需的所有软件,不存在过去阻碍移动行业创新的专有壁垒。Android是由Unix Java组成的。它的架构和工作原理决定了安卓是目前最便携的移动操作系统。安卓是开源软件,可以有效降低软件成本,从而降低手机整体价格,最终让每个用户都能自由获取信息。安卓提供了从操作系统到应用程序的完整软件栈,同时允许人们定制差异化,形成自己的竞争优势,对手机厂商有吸引力。开源软件的另一个好处是,它允许制造商独立解决问题。在这里,借助安卓系统的开源和可定制功能,我们增加了3G和WIFI的无线漫游机制。

2 ListView在wifi漫游中的作用

AcTIvity是应用程序中最重要的构建块。在Android应用中,几乎所有的用户都是通过ActiVe进行交互的,所以ActiVe主要负责创建显示窗口与用户进行交互。您可以通过调用setContentView(视图)方法在这些窗口中显示自己的用户界面。列表显示功能在实际应用开发过程中通常是需要的,所以在安卓应用中,我们通过安卓中一个特殊的组件ListView来显示列表,该组件以列表的形式显示具体内容,并且可以根据数据的长度自适应显示。列表的显示需要3个元素。

1.名单.用于显示列表的视图。

2.适配器。用于将数据映射到列表视图的中介。

3.数据。要映射的特定字符串、图片或基本组件。

绘制ListView的过程如下:首先,在绘制ListView之前,系统会调用getCount方法获取Item的个数。绘制项目后,将调用一次getView方法。在这种方法中,可以引用预定义的xml来确定显示效果,并返回要显示为项的视图对象。也正是在这个过程中,完成了适配器的主要转换功能,数据和资源以开发人员想要的效果显示出来。正是getView的反复调用,使得ListView的使用变得更加简单和灵活。这两种方法是定制ListView显示效果最重要的。同时,只要重写前两种方法,ListView完全可以按照开发者的要求进行显示。调用ListView的response方法时,将调用getltem和getltemld方法。因此,为了保证ListView每种方法的有效性,这两种方法都要重写。作为一种数据显示机制,ListView可以在用户添加SSID节点后,通过这种机制进行显示,同时添加删除、修改按钮和SSID序列号。这些SSID节点作为wIFI漫游的搜索节点,根据用户的常用级别定义优先级顺序。

2.1 SharedPreference实现数据存储

安卓平台为我们提供了一个SharedPreferences类,这是一个轻量级的存储类,特别适合保存软件配置参数。SharedPreferences是一种将应用程序的配置信息存储在键值对中的方法,键值对只能存储基本的数据类型。程序的配置文件只能在这个应用程序中使用,或者只能在同一个包中使用,不能在不同的包之间使用。实际上,SharedPreferences使用XML格式将数据存储在设备中,该设备位于DDMS文件资源管理器中的/data/data/~ package name/shares references目录中。

因为sharedPreferences使用xml文件保存数据,所以getSHAREPOINT references(NAmE,mode)方法的第一个参数用于指定文件的名称。名字不需要后缀,后缀会由安卓自动添加。如果希望SharedPreferences使用的xml文件被其他应用程序读取和写入,可以指定context.mode-world可读和context。模式世界写权限。此外,Activity还提供了另一种getPreferences(模式)方法来操作SharedPreferences。默认情况下,此方法使用不带包名的当前类的类名作为文件名。访问共享引用中的数据的代码如下:

long num—ssidvalues . GetI ONG(SSIDNUM

,O);如果访问其他应用中的Preference,前提条件是该preference创建时指定了Context.MODE WORLDREADABLE 或者Context.MODE WORLDWRITEABLE权限。在此实现中是将数据存储在用户自己定义的SharedPreference文件中,用户将SSID节点添加到用户定义的SSIDINFO文件中。

  2.2 3G WIFI无线漫游功能设计

  在基于android系统手机中的wIFI和3G都有相应的设置选项,在WIFI设置关闭的情况下默认通过3G 网络连接上网。用户会经常去一些有wIFI热点的地方,这些热点是给用户免费开放的,可以通过WIFI网络连接到互联网。这些经常用的AP节点就是用户设置的SSID节点。

  WIFI AP节点认证连接过程:

  ①搜索过程。终端进入wIFI后,首先搜索候选网络的AP信息,AP搜索过程就是终端扫描信道获取AP信息的过程,也叫AP扫描过程。在此过程中,终端在某个频道上发出请求消息,然后等待AP回应,然后转到下一个频道。IEEE802.n标准规定,AP在收到终端发出的请求信息后,必须回复携带自身信息的包给终端,终端成功收到AP回复后,就能够确知AP的存在并获取妙的相关信息。

  ② 认证过程。终端在发起切换连接上wIFI一个新的AP时,需要通过AP的认证。在进入认证阶段后,AP先发送一个待验证的内容片断给终端,终端解析此内容后将解析结果返回给AP,再判断终端解析后的内容是否正确,如果正确则通过认证,否则失败。3个子过程缺少一个过程都会导致此次认证失败,因此保证了AP认证机制的可靠性。尽管这3个过程比较复杂,在终端与AP之间产生了多次的交互,然而这些过程并不占用太多的时间。

  ③ 重关联过程。在经过认证后,需要与连接上的AP进行重关联,然后通过AP连接上网。在重关联过程中,终端先发送重关联请求帧给AP,该帧包含了终端一些信息,如终端所支持的数据比特率及终端将要进行连接的AP在网络中的SSID。在接收到请求后,AP处理请求并为该终端建立一条关联ID号同时分配一部分存储空间来存储相关信息。然后AP向终端发送重关联响应来通终端关联成功还是失败,同时包含AP建立重关联的相关信息。如果关联成功,则终端可以使用此AP联网并与其他已经联网的终端进行通信了。

  ④ 地址配置。终端在连接上AP后,AP要给终端分配一个IP地址,使其通过IP地址连接上互联网。

  以上步骤是wIFI在热点区域连接AP节点认证的过程。在android系统中wIFI如果设定为关闭即使是在有wIFI热点区域也不会进行搜索连接。为此我们添加了wIFI漫游过程。首先每隔一个固定间隔时间打开wIFI设置,查找是否有wIFI热点,如果有就进行以上的wIFI连接AP节点的过程,然后查找用户设定的SSID节点,查找到和用户设定的一致的SSID节点则进行网络连接。网络连接终端可以发起切换,在与3G 网络断开后使用存储的信息与wIFI的AP建立连接,通过wIFI上网,从3G 网络切换到WIFI网络连接到Internet。

随着人们日常生活和工作节奏的不断加快,人们对信息获取的便捷程度、对移动办公、移动娱乐的重视程度正与日俱增。无线接人是满足这一高速增长需求的唯一途径,无线接人的两个主角是3G(3rdGeneraTION)技术和W1FI(Wireless Fidelity)技术。

  本论文针对目前比较流行的Android系统手机终端的3G、wIFI连接机制实现了3G和wIFI的无线漫游。

  1 Android平台介绍

  Android是Google公司最新推出的一个手机平台,是一个真正意义上的开放性移动设备综合平台。它包括操作系统、用户界面和应用程序及移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Android是由Unix+Java构成的。它的架构和工作原理决定了Android即目前最具可移植性的手机操作系统。Android是开源软件,能够有效降低软件的成本,从而降低手机的整体价格,最终让每个用户能够自由的获取信息。Android提供了一个从操作系统到应用程序的完整的软件栈,同时又允许人们定制差异化,以形成自己的竞争优势,这对于手机制造商来说,具有强大的吸引力。开源软件带来的另一个好处是允许厂商自主解决问题。在此我们借助android系统的开源性及可定制的特性在此基础上增加了3G、WIFI的无线漫游机制。

  2 WIFI漫游中ListView的作用

  AcTIvity是构成应用程序中最重要的构造块,在Android应用程序中,几乎都是通过AcTIvity来与用户进行交互,所以AcTIvity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。在实际开发应用程序的过程中通常需要用到列表显示功能,那么在Android应用中,我们是通过Android中的一个特殊组件ListView来进行列表展示,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。列表的显示需要3个元素。

  1.ListVeiw。用来展示列表的View。

  2. 适配器。用来把数据映射到ListView上的中介。

  3. 数据。具体的将被映射的字符串、图片、或者基本组件。

  ListView 绘制的过程如下:首先,系统在绘制ListView 之前,将会先调用getCount方法来获取Item 的个数。之后每绘制一个Item 就会调用一次getView 方法,在此方法内就可以引用事先定义好的xml来确定显示的效果并返回一个View对象作为一个Item 显示出来。也正是在这个过程中完成了适配器的主要转换功能,把数据和资源以开发者想要的效果显示出来。也正是getView 的重复调用,使得ListView 的使用更为简单和灵活。这两个方法是自定ListView显示效果中最为重要的,同时只要重写好了前两个方法,ListView就能完全按开发者的要求显示。而getltem和getltemld方法将会在调用ListView的响应方法的时候被调用到。所以要保证ListView的各个方法有效的话,这两个方法也得重写。ListView作为一个数据显示的机制,在用户添加完SSID节点可以通过这种机制显示出来,同时还添加了删除,修改按钮及SSID序号。这些SSID节点作为wIFI漫游的搜索节点,按照用户的经常使用的级别定义优先顺序。

  2.1 SharedPreference实现数据存储

  Android 平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。SharedPreferences是以键值对来存储应用程序的配置信息的一种方式,它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不能在不同的包之间使用。实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data/~ package name>/shares prefs目录下。

  

  因为sharedPreferences是使用xml文件保存数据,getSharedPreferences(nAME,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。如果希望SharedPreferences使用的xml文件能被其他应用读和写,可以指定Context.M ODE—W ORLD— READABLE 和Context.MODE WORLD WRITEABI E权限。另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。访问SharedPreferences中的数据代码如下:

  

  Long num — ssidvalues.getI ong(SSIDNUM ,O);如果访问其他应用中的Preference,前提条件是该preference创建时指定了Context.MODE WORLDREADABLE 或者Context.MODE WORLDWRITEABLE权限。在此实现中是将数据存储在用户自己定义的SharedPreference文件中,用户将SSID节点添加到用户定义的SSIDINFO文件中。

  2.2 3G WIFI无线漫游功能设计

  在基于android系统手机中的wIFI和3G都有相应的设置选项,在WIFI设置关闭的情况下默认通过3G 网络连接上网。用户会经常去一些有wIFI热点的地方,这些热点是给用户免费开放的,可以通过WIFI网络连接到互联网。这些经常用的AP节点就是用户设置的SSID节点。

  WIFI AP节点认证连接过程:

  ①搜索过程。终端进入wIFI后,首先搜索候选网络的AP信息,AP搜索过程就是终端扫描信道获取AP信息的过程,也叫AP扫描过程。在此过程中,终端在某个频道上发出请求消息,然后等待AP回应,然后转到下一个频道。IEEE802.n标准规定,AP在收到终端发出的请求信息后,必须回复携带自身信息的包给终端,终端成功收到AP回复后,就能够确知AP的存在并获取妙的相关信息。

  ② 认证过程。终端在发起切换连接上wIFI一个新的AP时,需要通过AP的认证。在进入认证阶段后,AP先发送一个待验证的内容片断给终端,终端解析此内容后将解析结果返回给AP,再判断终端解析后的内容是否正确,如果正确则通过认证,否则失败。3个子过程缺少一个过程都会导致此次认证失败,因此保证了AP认证机制的可靠性。尽管这3个过程比较复杂,在终端与AP之间产生了多次的交互,然而这些过程并不占用太多的时间。

  ③ 重关联过程。在经过认证后,需要与连接上的AP进行重关联,然后通过AP连接上网。在重关联过程中,终端先发送重关联请求帧给AP,该帧包含了终端一些信息,如终端所支持的数据比特率及终端将要进行连接的AP在网络中的SSID。在接收到请求后,AP处理请求并为该终端建立一条关联ID号同时分配一部分存储空间来存储相关信息。然后AP向终端发送重关联响应来通终端关联成功还是失败,同时包含AP建立重关联的相关信息。如果关联成功,则终端可以使用此AP联网并与其他已经联网的终端进行通信了。

  ④ 地址配置。终端在连接上AP后,AP要给终端分配一个IP地址,使其通过IP地址连接上互联网。

  以上步骤是wIFI在热点区域连接AP节点认证的过程。在android系统中wIFI如果设定为关闭即使是在有wIFI热点区域也不会进行搜索连接。为此我们添加了wIFI漫游过程。首先每隔一个固定间隔时间打开wIFI设置,查找是否有wIFI热点,如果有就进行以上的wIFI连接AP节点的过程,然后查找用户设定的SSID节点,查找到和用户设定的一致的SSID节点则进行网络连接。网络连接终端可以发起切换,在与3G 网络断开后使用存储的信息与wIFI的AP建立连接,通过wIFI上网,从3G 网络切换到WIFI网络连接到Internet。

   技术专区 低功耗蓝牙可穿戴设备使用心率传感器跟踪和记录用户的健康和 一文读懂:实现射频信号源的低相位噪声及高速频率切换的共存 抢先看:低相位噪声射频信号源新标准用于航空电子测试测量领 高科技!嘉兆科技发布RecPlay-32P射频信号记录回放系统 高频外围与射频信号测量认证技术与市场趋势

免责声明:本文由用户上传,如有侵权请联系删除!