在Android操作系统手机终端上实现了3G和wIFI的无线漫游

随着人们日常生活和工作节奏的不断加快,人们对信息获取的便捷程度、对移动办公、移动娱乐的重视程度正与日俱增。无线接人是满足这一高速增长需求的唯一途径,无线接人的两个主角是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。
2.3 wifi漫游功能模块框图
为了能够在间隔固定时间查询是否有wifi热点区域,特启动了一个漫游线程,该线程主要完成了如果已经在wifi热点区域则打开wifi设置,将wifi的ap节点与用户设定的ssid进行比较如果为设定的ssid节点则进行连接,否则即使在热点区域仍然用3g 网络连接。
在3g连接的情况下实现探测wifi节点流程图,如果探测到的ssid在设定的i ist列表中,将3g关闭并自动连接到设定的ssid,实现流程图如图1所示。
3 结束语
本文提出了一种基于android系统终端控制上实现3g到wifi以及wifi到3g 的无线漫游机制,分析了3g到wifi的连接、认证、得到ap信息的过程。
该机制的实现还主要用到了android中的listview用来进行数据显示,利用了adapter实现了iastview的数据传输,以及利用sharedpreference实现简单数据存储。该漫游机制的实现方便了用户使用,减少了用户使用3g网络流量的费用。

商汤科技:“天地人”三才阵,进击AI顶级巅峰
卫星天线的防雷保护设计解决方案
为什么你做数字货币投资时总是与盈利擦肩而过
小米6最新消息:小米6现身跑分网站准确配置再曝光
骨传导耳机消费需求爆发,磁吸充电线出货量激增
在Android操作系统手机终端上实现了3G和wIFI的无线漫游
西部数据加入著名全球灯塔网络 美光基金会承诺投入超过 100 万美元
华为畅享10 Plus无孔全视屏 打造全视野娱乐体验
同样是电子地图,高德地图与百度地图到底差在哪儿了?
采用AX22001微处理器与Wi-Fi模块实现无线温度传感器的设计
导致MySQL索引失效的情况以及相应的解决方法
使用机器学习算法能够发现一种新的抗生素化合物
中国现阶段为什么造不出高压柱塞泵?中国材料强与弱的矛盾问题?
特斯拉怎样应对动力电池三大挑战?
硅橡胶电缆的特征有哪些,都有哪些优点
7812扩流电路图
一加8外观设计图曝光,前置单摄挖孔后置三摄设计
华为云连接CC,解决企业跨地区发展的网络难题
一种仅通过PCB制造工艺就能完成挤压螺母安装的方案
国家对申请照明产品范围及条件、申请企业条件等作出了规定