Near Field Communication(nfc 近场通信)

nfc是一种短距离的无线通信技术,通信距离是4cm或者更少(有点夸张,10cm内应该是可以的),nfc技术允许在两个支持nfc的Android设备或者一个支持nfc的Android设备和nfc标签(贴纸)之间传输少量的数据。

nfc贴纸的范围是很广的,简单的nfc贴纸仅仅提供读和写,有些一次性的nfc贴纸都是只读的,只可以被写入一次数据,一旦写入就不能再被重新写入。更复杂的一些nfc贴纸提供计算的操作,并且有加密硬件校验对贴纸的访问。最复杂的nfc贴纸包含操作环境,允许在贴纸上执行代码进行复杂的交互,存储在贴纸上的数据可以以各种各样的格式写入,但是大多数的Android framework api 都是基于NFC FORUM(nfc组织,和蓝牙组织sig一样,初始由飞利浦,诺基亚,索尼创建的)定义的NDEF数据标准(NFC Data Exchange Format)

支持nfc的Android设备同时支持nfc的三种主要操作模式

Reader/Writer mode(读卡器模式)

这种模式允许nfc设备读或者写被动的nfc卡片或者nfc贴纸。

P2P mode(点对点模式)

这种模式允许nfc设备和其他的nfc设备交换数据,Android 系统应用 Androidbeam就是基于这种模式实现的。

Card emulation mode (卡模式)

允许nfc设备自己作为nfc卡片,这种nfc卡片可以被其他的nfc读卡器访问,即使用nfc设备来模拟卡片的交易。nfc卡片可以代替现实生活中的ic卡,公交卡,门禁卡,车票,门票等(现实中的卡有用的也都是一些信息,完全可以把这些信息通过虚拟卡片储存起来通过nfc方式被nfc读卡设备读取,这样就可以把现实中的卡片都存储到支持nfc的手机中去)。当前银行的芯片ic卡支持nfc,在手机支付宝的nfc手机上可以读取芯片ic卡的信息。

NFC Basics(nfc 基础)

这篇文档描述了Android如何发现nfc 贴纸卡片和如何识别和程序本身有关的nfc数据,也描述了在程序中如何通过NDEF格式交互nfc数据,最后简单描述了Android的api是如何支持nfc基本功能的。

Advanced NFC(nfc 加强)

这篇文档描述了Android apis 允许使用Android支持各种各样的标签技术,nfc数据交互不支持NDEF格式,或者Android系统不能完全理解NDEF格式的数据的时候,就需要手动的基于自定义的协议栈通过raw格式数据读和写数据,这种情况,Android系统提供了支持,Android系统支持自定义协议栈的nfc数据交互。

Host-based Card Emulation

这篇文档描述了Android设备如何自己实现nfc卡片,任何程序都可以生成一个nfc卡片和被其他的nfc读卡器读取信息。

附录1 nfc和蓝牙的对比

nfc是rfid(射频识别开发技术)演进过来的,由于当前rfid使用不多不再描述,不同点可以参考百度百科nfc的描述。

nfc和蓝牙都是无线通信技术而且都被集成到了移动设备中,二者的不同点为:

nfc不需要复杂的设置程序,蓝牙需要搜索配对链接,相对比,nfc的链接更快。

nfc的距离更短,10cm以内,而蓝牙的距离可以到10m,ble的距离也可以1m

nfc传递数据的速率慢一些,最高400k/s,而蓝牙的速率可以达到2.1M

nfc能量消耗比低功耗蓝牙都低,手机没电关机都可以使用。

nfc都是建立一对一的链接安全性相对比较高

nfc技术和蓝牙技术并不是互相替代的技术,更像是一种互相补充的技术,在不同的领域,不同的需求有着不同的实现,同时利用nfc可以快速连接的特性可以实现蓝牙的快速配对,具体的配对方式文档并没有提供。

详情可以参考百度百科nfc

附录2 当前nfc技术的使用

  1. nfc支付
  2. nfc卡片代替现实中的芯片ic卡,门票,门禁卡,公交卡等,可以把这些东西都集成到手机中去。(上面两项使用都是nfc设备的卡模拟技术)
  3. nfc贴纸标签放到海报上提供信息(可以是链接式的信息),nfc贴纸放到零售店商品上,手机以读取就可以了解到商品的来龙去脉所有的信息(nfc标签提供简单的信息和简单的计算逻辑)。
  4. nfc设备之间信息交换,两个nfc设备可以非常方便的交换通讯录数据等 ,Androidbeam基于这种方式的实现

     这种方式比较突出的实现:
    
     蓝牙连接的时候通过nfc实现配对比人工配对要快的多,具体的实现后面补充。
    
     Androidbeam:Android4.1以后提供的功能,利用nfc技术实现两个手机靠近就能交换数据和蓝牙配对。
    

Androidbeam更详细的可以参考百度百科Androidbeam

参考文章:

nfc官方开发文档

NFC FORUM(nfc官方组织文档)

results matching ""

    No results matching ""