Android移动平台中NDEF标签的扫描应用研究

时间:2022-09-20 11:36:56

Android移动平台中NDEF标签的扫描应用研究

摘 要:近年来,近场通信(NFC)技术成为最具竞争力的短距离无线通信技术之一。本文简要介绍了近场通信的概念和不同应用领域中的基本应用类型。阐述了Android移动平台下NFC应用是读取NDEF标签和发送数据。并详细介绍了Android环境下对于NFC标签的调度与NDEF标签的读取。

关键词:NFC,Android移动平台;NDEF标签;应用研究

中图分类号:TP391.7

1 NFC与Android平台

近场通信(Near Field Communication,NFC),又称近距离无线通信,是一种基于标准的近距离无线连接技术,能够在多电子设备之间实现简单而安全的双向交互,当两台NFC兼容的设备彼此距离为十几厘米远时,它们之间就可进行通信[1]。这个技术由免接触式射频识别(RFID)演变而来,并向下兼容RFID,最早由Sony和Philips各自开发成功,主要用于手机等手持设备中提供M2M(Machine to Machine)的通信。

NFC的数据传输特点,决定了它可以与移动互联网相互融合,促进互联网的发展,甚至给某些应用领域带来革命。在2011年基于Android操作系统的首款NFC近场通信应用就已经推出,并获得好评,随后,很多款采用Android系统的高端手机都将NFC作为标配。NFC在Android平台的应用主要体现在允许在NFC标签和Android设备之间或两个Android设备之间共享小的数据的负载。

2 NFC应用领域

NFC设备可以用作非接触式智能卡、智能卡的读写器终端以及设备对设备的数据传输链路[2]。NFC技术支持多种应用,其主要应用可以分为五种基本类型。

(1)智能卡片:使用NFC标签来取代现有的卡,将其贴在终端上,即可完成非接触卡所能实现的功能。

(2)扫描码:用户使用带有NFC读卡器的移动设备可以读取带有NFC标签的海报信息。较为典型的应用是将带有NFC标贴在宣传海报上,用户可将持有NFC读卡器的移动设备贴近标签,瞬间完成一系列设定的功能。

(3)无接触支付:由于NFC标签带有密码安全认证的高安全性,用户可以使用带有NFC标签的移动设备进行移动支付等操作。

(4)数据传输:NFC设备之间能够实现数据连接和数据传输,如数据文件传输、识别,交换,数据处理等操作。

(5)与移动互联网深度融合:NFC通过与射频技术和信息网络技术融合,成为一个崭新的开放性系统,将会对人们的生产生活产生重大影响,将NFC应用于现有的消费管理系统、商业促销系统、物流管理系统等各种系统中,也将会对系统的功能产生巨大变革。

3 NDEF标签

简单的NFC标签只能提供与读/写相关的语法。复杂的NFC标签不仅能够执行数学运算和交互代码,而且还能在访问扇区时进行加密处理。大多数的Android框架API都使用基于NDEF的标准格式存储标签中的数据。

在Android平台中对NFC的应用主要是解决从NFC标签中读取NDEF数据和将NDEF消息从一个设备发送给另一个设备。除非是在移动设备的设置菜单中NFC被禁用,否则Android设备会在非锁屏的状态下搜索NFC?然后被检测到的NFC标签会由标签调度系统对收集到的数据进行处理?目标应用程序需要声明一个Intent过滤器,并且需要发送处理数据的请求,才可以扫描到NFC标签。

4 标签调度

4.1 映射MIME数据类型和URI

当Android设备扫描到包含NDEF格式数据的NFC标签时,它会解析数据的MIME类型或URI标识?系统首先会读取消息中的第一条NdefRecord,来判断如何解释整个NDEF消息?使用TNF和类型字段,标签调度系统试图让MIME类型或URI映射到NDEF消息标签中。如果成功的话,它会把加载信息与实际的一块封装在ACTION_NEDF_DISCOVERED类型的Intent中。然而,会有标签调度系统不能根据第一条NDEF记录的数据类型来判断,所以会有NDEF数据不能被映射到MIME或URI,或NFC标签中不包含NDEF数据的情况发生。

4.2 调度NFC标签

当标签调度系统创建NFC标签和封装的Intent对象时,如果有多个应用程序能够处理该Intent对象,用户可以选择Activity。下面介绍了标签调度系统定义的三种Intent对象。

(1)ACTION_NDEF_DISCOVERED:这种Intent用于启动包含NDEF负载和已知类型的标签的Activity。这是最高优先级的Intent,并且标签调度系统在任何其他Intent之前,都会尽可能的尝试使用这种类型的Intent来启动Activity。

(2)ACTION_TECH_DISCOVERED:如果没有注册处理ACTION_NDEF_DISCOVERED类型的Intent的Activity,那么标签调度系统会尝试使用这种类型的Intent来启动应用程序。如果被扫描到的标签包含了不能被映射到MIME类型或URI的NDEF数据,或者没有包含NDEF数据,但是是已知的标签技术,那么也会直接启动这种类型的Intent对象。

(3)ACTION_TAB_DISCOVERED:如果没有处理ACTION_NDEF_DISCOVERED或ACTION_TECH_DISCOVERED类型的Intent的Activity,就会启动这种类型的Intent。

4.3 设定访问权限

在访问设备的NFC硬件和正确的处理NFC的Intent之前,要在文件中进行两个方面的声明。

(1)NFC硬件访问权限的声明:。

(2)最小SDK版本的声明:API Level 9只通过ACTION_TAG_DISCOVERED来支持有限的标签调度,并且只能通过EXTRA_NDEF_MESSAGES来访问NDEF消息。API Level 10中包含了广泛的读写支持,从而更好的推动了NDEF的应用前景,并且API Leve 14用Android Beam和额外的方便的创建NDEF记录的方法,向外提供了更容易的把NDEF消息推送给其他设备的方法。

5 读取NDEF类型的Intent

在应用程序的Android清单中可以针对一种、两种或全部三种类型的NFC的Intent进行过滤。但是,通常要在应用程序启动时控制最常用的ACTION_NDEF_DISCOVERED类型的Intent。

要想从Intent中获取被扫描到的NFC标签的相关信息,就需要Intent成功启动一个Activity。对扫描到的标签进行分析,从而使Intent对象获得额外的信息。其中,EXTRA_TAG代表了被扫描到的标签的Tag对象;EXTRA_NDEF_MESSAGES表示一个解析来自标签中的NDEF消息的数组,这个附加信息是强制在Intent对象上的;EXTRA_ID表示标签的低级ID。检查ACTION_NDEF_DISCOVERED类型的Intent,并从Intent对象的附加信息中获取NDEF消息。

6 结束语

信息时代的到来,各大厂家也都在争用先进技术,但是NFC技术只是在高端Android手机上出现,由于设备的规则没有一个统一的标准,安全系数不是很高等因素,NFC技术的发展之路也不是一帆风顺。由于基础设施等原因导致苹果公司也没有在iPhone中添加NFC模块。但是,这并不能说明NFC未来的发展前景是不好的,它的芯片成本低,很容易将其于贴附于手机电池外壳上,通过该技术,现在风传的手机支付,手机公交,手机门禁等等,都可以通过手机实现。

参考文献:

[1]韩露,桑亚楼.NFC技术及其应用[J].近距离无线通信技术,2008(06):26-30.

[2]李娟.NFC技术的校园应用方案分析[J].物联网技术,2013(09):45-49.

[3]王惟杰,陈金鹰,朱军.NFC技术及其应用前景[J].通信与信息技术,2013(206):67-69.

[4]石旭东.基于Android平台的NFC技术的研究与实现[J].软件,2013(01):65-68.

作者简介:石韵(1990-),女,河北廊坊人,研究生,研究方向:计算机应用技术。

作者单位:天津师范大学,天津 300387

上一篇:DMHS―H转报机业务不中断搬迁解决方案 下一篇:优化开平网络整体结构 提高设备生产效益