APP下载

Android平台的NFC与Wi-Fi Direct文件传输系统的设计

2015-03-23鲁云蒙夏哲雷

中国计量大学学报 2015年2期
关键词:服务端IP地址蓝牙

鲁云蒙,夏哲雷

(中国计量学院 信息工程学院,浙江 杭州 310018)

Android平台的NFC与Wi-Fi Direct文件传输系统的设计

鲁云蒙,夏哲雷

(中国计量学院 信息工程学院,浙江 杭州 310018)

针对传统文件传输系统需用户进行繁琐的搜索、配对及连接导致建立连接耗时长的问题,提出了一种采用近场通信(Near Field Communication)传输设备参数辅助建立设备Wi-Fi Direct快速连接的方法,该方法减少了建立连接所需时间和功耗.系统基于模块化思想设计了无线通信、数据传输和人机交互等功能模块,采用Wi-Fi Direct点对点无线通信方式,建立了基于TCP的Socket网络通信,实现了在较远的距离以较高的速率传输数据的功能.经验证,传输系统的连接时间和传输速率具有明显优势,稳定可靠,具有良好的用户体验.

文件传输;近场通信;Socket通信

近年来,随着移动互联网技术的飞速发展,智能手机变得十分普及,其性能也在不断的提升,用户也越来越注重体验.如今,手机用户之间进行数据传输共享也越来越重要.蓝牙传输作为移动设备主流的传输工具已经发展到了4.0,其理论最高传输速度为24 Mb/s,即便如此,它在传输速度和传输距离上还是跟不上用户的需求.同时,在用户体验上,蓝牙[1]还存在操作过程繁琐等问题.因此,如何提高手机之间文件传输的效率,改进操作,提升用户体验是急需解决的关键问题.

NFC是一种近距离无线通信技术[2],在所有无线通信技术中,NFC技术连接时间最短,理论连接时间是0.1 s,同时它还提供了多种加密方式,NFC手机采用SE芯片硬件加密和软件加密相结合,保证数据的安全.因此,NFC在小数据的传输中表现相当优秀,可以用来传递少量重要的信息.Wi-Fi Direct是一种新兴的无线连接技术,从Android4.0[3]开始,Wi-Fi Direct功能在Android上实现. Wi-Fi Direct的实现允许设备间点对点地进行Wi-Fi连接,无需要借助于AP和其他接入点[4].Wi-Fi Direct具有传输距离远、传输速率高的特点,其理论传输速度为250 Mb/s,传输距离为200 m,具有明显优于蓝牙4.0的特性,适用于大文件传输.因此,Wi-Fi Direct在数据传输上有取代蓝牙的态势.为了简化手动操作,缩短连接过程时间,取得良好的用户体验,保证数据的安全并提供优秀的传输性能,本系统提出将NFC技术与Wi-Fi Direct技术有效的结合起来.利用NFC技术的连接时间短,安全性高的特点,用于传输设备参数,辅助进行Wi-Fi Direct的连接,接着采用Wi-Fi Direct的传输速度快、传输距离远的特点高效的传输大文件数据流.

NFC技术与Wi-Fi Direct技术在现阶段都属于比较新的技术,目前,基于NFC和Wi-Fi Direct的应用都还处于发展起步的阶段,国内外都正在对它们的应用进行研究与探索.NFC技术虽然已经在公交卡、门禁卡和NFC支付钱包等领域进行了研究,但由于NFC硬件还没有成为智能手机的标配,其应用还未普及[5],也没有出现文献提出用NFC快速建立Wi-Fi Direct的连接.本研究将NFC与Wi-Fi Direct相结合实现文件传输,发挥各自技术特点,先进可行,满足设计要求,通过实践验证了其性能.

1 系统的总体设计

1.1 系统的结构模型

系统设计基于模块化思想,将系统划分为多个功能模块,各功能模块相互交互、协调工作.该文件传输系统的结构模型如图1,系统模型从下至上分为无线通信模块、数据传输模块和人机交互模块三个功能模块.

图1 文件传输系统的结构模型Figure 1 Overall structure of file transfer system

无线通信模块结合了NFC通信和Wi-Fi Direct点对点通信[6],旨在建立起设备的连接,为文件传输提供无线通信基础,它包含Wi-Fi P2P服务的启动、NFC读写辅助Wi-Fi Direct设备的匹配以及Wi-Fi Direct搜索连接等功能的实现.文件传输模块包括TCP的Socket通信、数据模型和文件操作,基于TCP建立Socket通信进行字节流的传输;数据模型完成对文件到数据流以及数据流到文件的转化等;文件操作主要是完成文件选定以及实现文件存储.该模块以无线通信模块为基础,建立在设备连接之后,担任着连接无线通信模块与人机交互模块的角色,通过接收用户的指令,利用无线通信模块提供的网络服务向用户作出响应,对接收到的数据进行分类存储.人机交互模块包括UI显示和用户操作,UI显示包含Wi-Fi Direct设备信息的显示、连接状态的显示、传输开始以及完成时的提示和传输进度显示等显示内容;用户操作主要包含文件选择操作以及手机触碰操作等.

1.2 系统的工作流程

系统的软件工作流程如图2,总体工作流程可概括为先连接后传输.程序启动后,开启Wi-Fi P2P服务,并将Wi-Fi Direct设备参数(Wi-Fi Direct名称和MAC地址)存储于模拟NFC中,等待手机NFC模块相互靠近传递Wi-Fi Direct设备参数,随后,发送端手机向接收端手机发起Wi-Fi Direct连接.设备连接成功之后,接收方新建一个Socket服务端,发送方新建一个Socket客户端并连接到服务端,Socket通信就此建立,双方通过Socket通信的Read()和Write()方法实现数据的发送与接收,传输完毕后,双方执行close()方法关闭Socket通信.

图2 软件工作流程图Figure 2 Flow chart of the software

2 主要模块的设计

2.1 设备的连接

设备的搜索与连接结合了NFC与Wi-Fi Direct两种技术.NFC有三种应用模式分别为卡模拟模式、点对点模式和读卡器模式[7].Android4.4已经加入了卡仿真方法,基于主机的卡仿真HCE(Host-based Card Emulation)允许手机支持卡模拟模式,让任何Android应用程序来模拟卡直接和读写器进行通信.在HCE技术中,NFC读卡器直接与模拟卡的主机CPU进行通信,如图3.本模拟系统采用基于主机的卡仿真技术应用开启一个HCE服务,将应用程序模拟成一个NFC卡.NFC卡中的数据为本机的Wi-Fi Direct的设备参数,数据被传输到本机的CPU中.发送端手机NFC通过与接收端手机CPU通信,从而读取到接收端手机的设备Wi-Fi Direct名称和MAC地址.使用NFC功能时需先在AndroidManifest.xml文件中加入NFC的硬件访问权限android.permission.NFC,在发现NDEF_DISCOVERED的action之后调用NdefMassage相关的API读取需要的NDEF数据[8].

图3 基于主机的卡仿真HCE与NFC Reader通信原理图 Figure 3 Communication principle diagram of Host-based simulation HCE card andNFC Reader

该系统的设备搜索与连接和传统的Wi-Fi Direct连接应用采用同样的搜索机制,在一定范围内读取到启用了Wi-Fi P2P服务的设备的设备名、MAC地址和连接状态等设备信息,设备信息以device列表的形式反馈.不同之处在于,传统的Wi-Fi Direct连接应用通过点击device列表连接指定设备;该系统采用NFC传递设备参数,与device列表进行自动匹配并发起连接.Wi-Fi Direct在连接过程中会确定其中一个设备作为Group Owner[9],其他的设备作为Clients,在协商好Group Owner之后,会调用DHCP相关的状态机动态的为它的Clients成员分配IP.Group Owner自身的IP为"192.168.49.1",其值是固定的,Clients的IP为"192.168.49.X",X为动态分配值,每个Client分配的IP中,X互不相同.Wi-Fi Direct在连接成功之后,其连接对象的连接类型、MAC地址和IP地址等信息会存储在的一个名为arp系统文件夹中,同时,设备的MAC地址信息在device列表中能够被获取到.因此,Group Owner可以通过MAC地址从arp文件中读取到与其连接的任何一个Client的IP地址.

在Wi-Fi Direct的搜索与连接过程中加入NFC会存在两个方面的优势:1)连接过程由手动变为自动,简化操作;2)NFC信息的传递确定了文件传输的发送方与接收方,无需用户再次选择文件发送的对象.用户只需要一次“碰撞”就可迅速完成设备的连接以及确定发送对象.

2.2 数据传输

为了保证传输系统数据传输的稳定性,本系统采用基于TCP/IP的可靠通信[10].Android的SDK中已经为我们提供了Socket网络通信的相关API,它们在Socket和ServerSocket两个类中,分别供客户端和服务器端调用.Socket通信中,首先由客户端发起通信,服务器阻塞的等待客户端发送数据过来并作出响应.该系统的客户端与服务端是双向的,实际传输中,将发送端手机作为Socket客户端,接收端手机作为Socket服务器端.当两部手机的NFC靠近的时候,服务器端手机将会开启一个Socket服务端的线程,该线程主要完成ServerSocket的创建,然后调用accept()方法阻塞的等待客户端的连接.客户端手机将开启一个Socket客户端线程,该线程调用Socket()发起对服务端的连接.

由于Wi-Fi Direct的底层实现机制中,Group Owner无法人为指定,本系统所建立的Socket服务端并不一定在Group Owner所在的主机上,因此,Socket通信的建立分三种情况:1)Socket服务端在Group Owner的主机上时,Socket客户端连接到IP地址为"192.168.49.1"上的Socket服务端;2)Socket客户端在Group Owner所在的主机上时,Socket服务端IP地址为"192.168.49.X",该IP地址为Wi-Fi Direct连接过程中DHCP所分配,通过Wi-Fi Direct的Clients的MAC地址从arp文件中获取,获取到IP地址后后,Socket客户端向该IP地址上的Socket服务端发起连接;3)Socket服务端与客户端均不在Group Owner上时,Socket服务端与客户端的IP地址分别为"192.168.49.X"与"192.168.49.Y",对等设备均为Client,Client之间并不直接连接,而是存在与Group Owner建立的局域网当中,Socket客户端需要通过Group Owner才能获取到Socket服务端的IP地址,Group Owner运用Broadcast机制将Socket服务端的IP地址传递到客户端.

在Android的实现当中,Socket数据流封装成了输出流OutputStream和输入流InputStream,它们以字节为单位进行传输.本系统将文件封装成DataInputStream和DataOutputStream,可以直接与Socket的字节流进行对接.数据封装好之后即可调用Socket的Read()和Write()方法进行数据的传输.

2.3 文件管理

本系统文件的管理主要包括两个主要的部分,即文件选择与文件存储.对于发送方,需要获取所选发送文件的统一资源标示符(Uniform Resource Identifier),程序调用Activity中的startActivityForResult()启动Intent.Action_Get_Content帮助用户跳转到文件目录,用户完成文件选择之后,执行onActivityResult()回调方法返回主程序,并返回所选文件的URI,完成选择之后文件的路径会显示在界面上.接收方接收到数据流之后,会指定一个路径新建文件,用于装载数据流还原文件,接收完成之后,系统提示用户文件的存储路径及文件名,方便用户查看.

3 系统的性能测试与分析

系统采用NFC结合Wi-Fi Direct传输方案,针对传统传输方案在设备连接上做出改进,相比常用的Wi-Fi Direct应用,它在设备连接的过程中不需用户手动进行设备的搜索和连接.如表1,为手机自带的Wi-Fi Direct连接应用与本系统应用在设备连接上的耗时比较.智能设备在Wi-Fi Direct设备连接过程中会受到通信距离和手机配置等因素的影响,为了保证严谨性,测试在同一组手机中进行,且尽量保证等量的通信距离,此次测量过程均包含手动操作消耗的时间.测试机型为LG Nexus 5和索尼Xperia C3.由于受手指触碰和点击操作影响较大,为保证数据的可靠,测试中连续测量50组数据取平均值.

表1 NFC结合Wi-Fi Direct和Wi-Fi Direct的连接耗时对比

Table 1 Comparison of connection time consuming between NFC combined with Wi-Fi Direct and Wi-Fi Direct

方式NFC结合Wi-FiDirectWi-FiDirect连接时间/ms611212541

表1表明,Wi-Fi Direct在连接过程中加入NFC功能进行辅助能够明显的减少连接耗时,NFC“触碰”相比于手动点击操作具有较好的用户体验.

目前,手机中主流的文件传输应用主要采用的是Wi-Fi热点传输和蓝牙传输两种方式,Wi-Fi Direct由于出现时间较晚,其应用并不广泛,理论上,Wi-Fi Direct在传输速率上具有更好的性能.本系统采用Wi-Fi Direct作为主要数据的传输方式,与Wi-Fi热点传输和蓝牙传输两种方式进行速率上的对比,对比测试数据如表2.由于实际测试中,传输开始与结束的采点存在误差,为了尽量减小误差,保证测量的准确性,本次传输测试选择较大的文件,并且测量了50组数据分别取其平均值,计算出相应速度.

表2表明,传输同样大小的文件,Wi-Fi Direct耗时比蓝牙短得多,传输速率高出蓝牙近10倍.苗振兴[10]在文献中采用Wi-Fi热点方式进行传输,测试得到其传输速率在600 kB/s以上,排除设备的影响,我们测试得到的Wi-Fi热点传输速率约1.5 MB/s,而采用NFC结合Wi-Fi Direct传输方案测得的传输速率约2.1 MB/s,高出Wi-Fi热点传输近1/3.除了较高的传输速度之外,Wi-Fi Direct的有效传输距离也很远,约200米.由于连接耗时和传输耗时都大大降低,传输一定大小的文件时,功耗也有所降低.经比较,NFC结合Wi-Fi Direct的文件传输方案在文件传输应用中具有连接快、体验好、速率高的特性.

表2 Wi-Fi Direct、Wi-Fi热点和蓝牙传输速度对比

Table 2 Comparison of transmission speed between Wi-Fi Direct、Wi-Fi Hot and Bluetooth

文件大小/M方式时间/s速度/(m·s-1)48.8340Wi-FiDirect22.92.13Wi-Fi热点31.51.55蓝牙325.530.15Wi-FiDirect18.92.11Wi-Fi热点27.11.48蓝牙270.270.148

4 结 语

该研究通过将NFC与Wi-Fi Direct技术相结合,实现数据互传,减少了整个传输过程的时间,操作简便,同时降低功耗,并且改善了用户体验.经测试,系能性能良好,具有实用性和创新性.该系统的运用需要设备同时具备Wi-Fi Direct功能和NFC功能,对设备的要求比较高,但随着Android与移动设备的发展,具备这两项功能的移动手机将普及,故具有一定推广应用价值.

[1] 马捷,鄂金龙.用NFC技术快速建立蓝牙安全连接问题研究[J].计算机应用与软件,2013,30(3):207-212. MA Jie, E Jinlong. Research on fast establishing Bluetooth secure connection with NFC technology[J].Computer Applications and Software,2013,30(3):207-212.

[2] 赵特木.基于Android平台的NFC信息管理系统的设计与

实现[D].大连:大连理工大学,2013. ZHAO Temu. Design and implementation of a NFC message manage system based on Android platform[D].Dalian:Dalian University of Technology,2013.

[3] 杨艾平.基于Wi-Fi Direct的Android文件传输研究与实现[D].上海:东华大学,2014. YANG Aiping. Research and implementation of files’ transfer system which based on Android’s Wi-Fi Direct API[D].Shanghai:Donghua University,2014.

[4] 施金兰.基于Android平台的网络共享研究与实现[D].上海:华东师范大学,2011. SHI Jinlan. Study and implementation of network sharing based on Android[D].Shanghai: East China Normal University,2011.

[5] 马捷,鄂金龙.基于近场通信的WiFi传输连接方案[J].计算机工程,2013,39(6):1-6. MA Jie, E Jinlong.Wi-Fi transmission connection scheme based on Near Field Communication[J].Computer Engineering,2013,39(6):1-6.

[6] 李静远.P2P系统结构与数据传输策略研究与实现[D].安徽:中国科学技术大学,2009. LI Jingyuan. Peer-to-peer system structures and data transmission strategies design and implementation[D].Anhui: University of Science and Technology of China,2009.

[7] 陆凯,孟旭东.NFC移动通信终端的研究与应用[J].现代电信科技,2008,38(11):18-21. LU Kai, MENG Xudong. The research and application of NFC in mobile communication terminal[J].Modern Science Technology of Telecommunication,2008,38(11):18-21.

[8] 宋海燕.基于Android的NFC文件传输系统的设计与实现[D].北京:北京邮电大学,2012. SONG Haiyan. Design and implementation of NFC file transfer system based on Android[D].Beijing: Beijing University of Posts and Telecommunications,2012.

[9] 泰凯文.基于Android平台利用Wi-Fi Direct设计并实现音视频共享系统[J].软件,2012,33(7):71-73. TAI Kaiwen. Design and implement the system to share audio and video using WiFi Direct based on the Android platform[J].Software,2012,33(7):71-73.

[10] 苗振兴.基于Android平台的WIFI文件传输系统的研究与实现[D].安徽:安徽工程大学,2013. MIAO Zhenxing. Research and implementation of WIFI file transfer system based on Android platform[D].Anhui: Anhui Polttechnic University,2013.

Design of NFC and Wi-Fi Direct file transfer systems based on Android platforms

LU Yunmeng, XIA Zhelei

(College of Information Engineering, China Jiliang University, Hangzhou 310018, China)

In view of the problem of the long time needed to establish connection among traditional file transmission systems that is caused by the fussy operations of necessary search, match and connection of the users, this research proposed a method based on NFC transmission equipment parameters to help establish a Wi-Fi Direct connection. The method reduced the time and power needed for the connection establishment. Based on the thinking of modularization the system designed such founction modules as wireless communication, data transmission, human-computer interaction and so on. It used Wi-Fi Direct point to point wireless communication and established Socket network communication based on TCP to realize the function of data transmission in further distance at a higher speed. The transmission system was verified to have obvious advantages on the time of establishing connection and the speed of transmission. Moreover, the system is stable and reliable and has good user experience.

file transfer; near field communication; Socket communication

1004-1540(2015)02-0232-06

10.3969/j.issn.1004-1540.2015.02.020

2014-12-06 《中国计量学院学报》网址:zgjl.cbpt.cnki.net

浙江省自然科学基金资助项目(NO.LY12F01011).

TP393

A

猜你喜欢

服务端IP地址蓝牙
蓝牙音箱的直线之美
铁路远动系统几种组网方式IP地址的申请和设置
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
新时期《移动Web服务端开发》课程教学改革的研究
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计
蓝牙4.0落地加速
摸清黑客套路防范木马侵入