【移动应用开发技术】深入分析Android NFC技术 android nfc开发_第1页
【移动应用开发技术】深入分析Android NFC技术 android nfc开发_第2页
【移动应用开发技术】深入分析Android NFC技术 android nfc开发_第3页
【移动应用开发技术】深入分析Android NFC技术 android nfc开发_第4页
【移动应用开发技术】深入分析Android NFC技术 android nfc开发_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】深入分析AndroidNFC技术androidnfc开发

从概念,实现原理以及最红实现的源码等有助于大家对NFC技术有更深入的理解。NFC是NearFieldCommunication缩写,即近距离无线通讯技术。可以在移动设备、消费类电子产品、PC和智能控件工具间进行近距离无线通信。简单一点说,nfc功能是什么?nfc功能有什么用?其实NFC提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。NFC技术允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9英吋)内,交换数据,其传输速度有106Kbit/秒、212Kbit/秒或者424Kbit/秒三种。接下来我们更加详细的来了解一下nfc的应用。一、nfc是什么,它的工作模式?

NFC工作模式主要有三种工作模式,分别是卡模式(Cardemulation)、点对点模式(P2Pmode)和读卡器模式(Reader/writermode)。(1)读卡器模式/p/e89cc9bba8a6数据在NFC芯片中,可以简单理解成“刷标签”。本质上就是通过支持NFC的手机或其它电子设备从带有NFC芯片的标签、贴纸、名片等媒介中读写信息。通常NFC标签是不需要外部供电的。当支持NFC的外设向NFC读写数据时,它会发送某种磁场,而这个磁场会自动的向NFC标签供电。(2)仿真卡模式数据在支持NFC的手机或其它电子设备中,可以简单理解成“刷手机”。本质上就是将支持NFC的手机或其它电子设备当成借记卡、公交卡、门禁卡等IC卡使用。基本原理是将相应IC卡中的信息凭证封装成数据包存储在支持NFC的外设中。在使用时还需要一个NFC射频器(相当于刷卡器)。将手机靠近NFC射频器,手机就会接收到NFC射频器发过来的信号,在通过一系列复杂的验证后,将IC卡的相应信息传入NFC射频器,最后这些IC卡数据会传入NFC射频器连接的电脑,并进行相应的处理(如电子转帐、开门等操作)。(3)点对点模式该模式与蓝牙、红外差不多,用于不同NFC设备之间进行数据交换,不过这个模式已经没有有“刷”的感觉了。其有效距离一般不能超过4厘米,但传输建立速度要比红外和蓝牙技术快很多,传输速度比红外块得多,如过双方都使用Android4.2,NFC会直接利用蓝牙传输。这种技术被称为AndroidBeam。所以使用androidBeam传输数据的两部设备不再限于4厘米之内。二、Android对NFC的支持

不同的NFC标签之间差异很大,有的只支持简单的读写操作,有时还会采用支持一次性写入的芯片,将NFC标签设计成只读的。当然,也存在一些复杂的NFC标签,例如,有一些NFC标签可以通过硬件加密的方式限制对某一区域的访问。还有一些标签自带操作环境,允许NFC设备与这些标签进行更复杂的交互。这些标签中的数据也会采用不同的格式。但AndroidSDKAPI主要支持NFC论坛标准(ForumStandard),这种标准被称为NDEF(NFCDataExchangeFormat,NFC数据交换格式)。NDEF格式其实就类似于硬盘的NTFS,下面我们看一下NDEF数据:(1)NDEF数据的操作AndroidSDKAPI支持如下3种NDEF数据的操作:1)从NFC标签读取NDEF格式的数据。2)向NFC标签写入NDEF格式的数据。3)通过AndroidBeam技术将NDEF数据发送到另一部NFC设备。用于描述NDEF格式数据的两个类:1)NdefMessage:描述NDEF格式的信息,实际上我们写入NFC标签的就是NdefMessage对象。2)NdefRecord:描述NDEF信息的一个信息段,一个NdefMessage可能包含一个或者多个NdefRecord。NdefMessage和NdefRecord是AndroidNFC技术的核心类,无论读写NDEF格式的NFC标签,还是通过AndroidBeam技术传递Ndef格式的数据,都需要这两个类。(2)非NDEF数据的操作对于某些特殊需求,可能要存任意的数据,对于这些数据,我们就需要自定义格式。这些数据格式实际上就是普通的字节流,至于字节流中的数据代表什么,就由开发人员自己定义了。(3)编写NFC程序的基本步骤1)设置权限,限制Android版本、安装的设备:2)定义可接收Tag的Activity,配置一下launchMode属性:三、实战使用NFC标签

(1)利用NFC标签让Android自动运行程序场景是这样的:现将应用程序的包写到NFC程序上,然后我们将NFC标签靠近Android手机,手机就会自动运行包所对应的程序,这个是NFC比较基本的一个应用。下面以贴近标签自动运行Android自带的“短信”为例。向NFC标签写入数据一般分为三步:1)获取Tag对象2)判断NFC标签的数据类型(通过Ndef.get方法)3)写入数据实际运行效果如下:操作步骤:点击自动打开短信界面或百度页面,进入对应Activity,将NFC标签贴近手机背面,提示写入成功。返回主界面,再将NFC标签贴近手机背面,便能看到自动打开短信或者打开百度页面。四、NDEF文本格式深度解析

获取NFC标签中的数据要通过NdefRecord.getPayload方法完成。当然,在处理这些数据之前,最好判断一下NdefRecord对象中存储的是不是NDEF文本格式数据。(1)判断数据是否为NDEF格式1)TNF(类型名格式,TypeNameFormat)必须是NdefRecord.TNF_WELL_KNOWN。2)可变的长度类型必须是NdefRecord.RTD_TEXT。如果这两个标准同时满足,那么就为NDEF格式。(2)NDEF文本格式规范不管什么格式的数据本质上都是由一些字节组成的。对于NDEF文本格式来说,这些数据的第1个字节描述了数据的状态,然后若干个字节描述文本的语言编码,最后剩余字节表示文本数据。这些数据格式由NFCForum的相关规范定义,可以通过/specs/spec_dashboard下载相关的规范。下面这两张表是规范中3.2节相对重要的翻译部分:实现NFC标签中的文本数据的读写操作:点击写NFC标签中的文本数据,跳转到对应的Activity,将NFC标签卡贴近手机,写入成功后会提示,再退回主页面,选择读文本数据,便可读取。五、非NDEF格式(操作步骤如上图,具体实现查阅项目代码)

六、NDEFUri格式存储(操作步骤如上图,具体实现可查阅项目代码)MifareUltralight数据格式:将NFC标签的存储区域分为16个页,每一个页可以存储4个字节,一个可存储64个字节(512位)。页码从0开始(0至15)。前4页(0至3)存储了NFC标签相关的信息(如NFC标签的序列号、控制位等)。从第5页开始存储实际的数据(4至15页)。使用MifareUltralight.get方法获取MifareUltralight对象,然后调用MifareUltralight.connect方法进行连接,并使用MifareUltralight.writePage方法每次写入1页(4个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论