时间:2014-01-02 17:01 文章来源:http://www.lunwenbuluo.com 作者:王大鹏 点击次数:
摘要:Wi-FiDirect技术是近年新兴的近距离无线通信技术,该技术无需Wi-Fi热点即可实现设备之间的互联互通,在近距离无线通信技术中具有显著的优势和广阔的应用前景。本文设计并实现了基于Wi-FiDirect技术的文件共享系统应用,具有传输速率高、覆盖距离大、便捷易用、功能设计完善以及拓展性强等特点,具有很强的应用价值。
关键词:Wi-FiDirect;Android;信息共享
1概述
早期的信息共享,要么通过将设备接入局域网,要么通过第三方存储介质,或使用红外技术、蓝牙技术、NFC[1]等近距离无线技术[2],然而这些技术要么设置步骤繁琐、要么数据传输速率低,覆盖面积小、要么需要路由器作为接入设备,不能满足日益增长的用户需求。Wi-FiDirect技术是在Wi-Fi技术的基础上推出的,具有传统的Wi-Fi技术优势,无需AP,即可端对端组网、共享信息。本文设计的基于Wi-FiDirect信息共享系统利用该技术优势,实现用户组网快捷、无需AP设备直接彼此互联、具有传输速率高、覆盖距离大等优点。
2系统设计
本应用是在Android系统[3]上实现的,应用的整体架构自上而下设计为上层应用层、中间信息处理层、下层传输层和底层硬件管理层。
上层应用层,设计为人机接口功能,为用户操作的各项功能提供承托平台,包含用户管理模块、消息管理模块、通知管理模块和文件管理模块。该层以简洁流畅的人机界面设计呈现给用户,便于用户快速调用所需功能,使用应用。
中间信息处理层,设计为信息处理功能,用于对传输信息进行诸如加密解密、CRC校验、数据压缩处理等功能。同时,该层还包含自定义的通信协议和网络发现服务协议的封装和解析还原功能。
下层传输层,设计为应用的信息传输功能,包含网络发现服务模块和传输管理等模块。通过合理选择TCP、UDP传输方案,将各种上层协议封装好的数据信息传输小组内其他设备,同时对接收的数据信息通过观察者模式告知上层应用框架,分发消息。
底层硬件管理层,设计为Wi-FiDirect管理功能,用于向wpa_supplicant进程发送相应命令,调用Wi-FiDirect的各项功能,监听Wi-FiDirect驱动通过wpa_supplicant发出的各种事件,再通过AndroidIntent广播机制告知上层框架。
3关键层次的实现
区别于基于其他技术的同类应用,基于Wi-FiDirect文件共享系统最大的特点就是利用Wi-FiDirect技术优势,即建立连接方便快捷,无需AP,传输速率高、覆盖面积广等特点。因此,操作Android系统底层Wi-FiDirect功能的底层硬件管理模块是本系统的关键部分。
底层硬件管理层主要用于对本地Wi-FiDirect硬件的调用和通信,是整个系统的核心也是上层部分功能实现的底层硬件基础,用于加载、激活底层Wi-FiDirect硬件驱动,按需求操作Wi-FiDirect各项功能,以及接收底层Wi-FiDirect驱动的传出事件并通知上层应用执行相应处理。Android操作系统对Wi-FiDirect功能的硬件驱动支持出现在Android4.0及后续版本,由于Android系统为了维持API的稳定性以及对硬件访问权限的控制[4],Wi-FiDirect的激活和关闭方式不同于传统的Wi-Fi操作,必须通过发送Action为Settings.ACTION_WIRELESS_SETTINGS的Intent,打开Wi-Fi设置界面启动或关闭Wi-FiDirect功能,对于系统的独立性和便捷性、及用户体验都有极大的影响。为了能够实现直接激活和关闭Wi-FiDirect底层硬件功能,本层采用Java反射机制,直接解析Android应用程序框架层中的wifip2pManager类,访问相应功能API,反射机制实现保护API调用代码如下:
联系方式
随机阅读
热门排行