深入分析Android NFC技术Android NFC开发

  

从概念,实现原理以及最红实现的源码等有助于大家对NFC技术有更深入的理解。

  

NFC是近场通信缩写,即近距离无线通讯技术。可以在移动设备,消费类电子产品,PC和智能控件工具间进行近距离无线通信。简单一点说,NFC功能是什么? NFC功能有什么用?其实NFC提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息,访问内容与服务.NFC技术允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9英吋)内,交换数据,其传输速度有106 kbit/秒,每秒212比特/秒或者424 kbit/秒三种。接下来我们更加详细的来了解一下NFC的应用。

  

深入分析Android NFC技术Android NFC开发

  


  

  

NFC工作模式主要有三种工作模式,分别是卡模式(卡模拟),点对点模式(P2P模式)和读卡器模式(读/写模式)。

  

(1)读卡器模式http://www.jianshu.com/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技术Android NFC开发

  


  

  

不同的NFC标签之间差异很大,有的只支持简单的读写操作,有时还会采用支持一次性写入的芯片,将NFC标签设计成只读的。当然,也存在一些复杂的NFC标签,例如,有一些NFC标签可以通过硬件加密的方式限制对某一区域的访问。还有一些标签自带操作环境,允许NFC设备与这些标签进行更复杂的交互。这些标签中的数据也会采用不同的格式。但Android SDK API的主要支持NFC论坛标准(论坛标准),这种标准被称为NDEF (NFC数据交换格式,NFC数据交换格式)。

  

NDEF格式其实就类似于硬盘的NTFS,下面我们看一下NDEF数据:

  

(1) NDEF数据的操作

  

Android SDK API支持如下3种NDEF数据的操作:

  

1)从NFC标签读取NDEF格式的数据。

  

2)向NFC标签写入NDEF格式的数据。

  

3)通过Android梁技术将NDEF数据发送到另一部NFC设备。

  

用于描述NDEF格式数据的两个类:

  

1) NdefMessage:描述NDEF格式的信息,实际上我们写入NFC标签的就是NdefMessage对象。

  

2) NdefRecord:描述NDEF信息的一个信息段,一个NdefMessage可能包含一个或者多个NdefRecord。

  

NdefMessage和NdefRecord是Android NFC技术的核心类,无论读写NDEF格式的NFC标签,还是通过Android梁技术传递NDEF格式的数据,都需要这两个类。

  

(2)非NDEF数据的操作

  

对于某些特殊需求,可能要存任意的数据,对于这些数据,我们就需要自定义格式。这些数据格式实际上就是普通的字节流,至于字节流中的数据代表什么,就由开发人员自己定义了。

  

(3)编写NFC程序的基本步骤

  

1)设置权限,限制Android版本,安装的设备:

  

深入分析Android NFC技术Android NFC开发

  

2)定义可接收标签的活动,配置一下launchMode属性:

  

深入分析Android NFC技术Android NFC开发

深入分析Android NFC技术Android NFC开发