目录
一、NFC简介
1.NFC概览
NFC,全称是Near Field Communication,中为近场通信,也叫做近距离无线通信技术。该技术最早由Philips和Sony两家公司于2002年末联合推出。2004年,Nokia、Philips、Sony等公司还共同组建了一个名为NFC Forum的非盈利性组织来推广和发展NFC技术。NFC Forum的职责和Wi-Fi Alliance类似,它制定NFC相关的技术标准,同时还通过NFC认证测试来保证各厂家的NFC产品符合NFC规范。
- NFC与蓝牙、红外通信的区别
2.NFC工作模式
- 主动模式:
NFC设备要向另一台设备发送数据时,发起设备和目标设备都需要产生射频场,以便进行通信。
发起设备指最先发起沟通的一方(自带供电),目标设备则为回应一方。
主动模式下,NFC发起设备通过“发送前侦听” 协议来发起半双工发送连接,防止冲突。
- 被动模式
启动NFC通信的设备(NFC发起设备,主设备),在整个通信过程中提供RF场,目标设备不必产生RF场。
NFC发起设备负责选择传输速度,然后将数据发送到目标设备。目标设备使用负载调制(load modulation)技术,以相同的速度将数据传回发起设备。
移动设备通过采用被动模式进行通信,大幅降低功耗,并延长电池寿命。
3.NFC通信模式
支持 NFC 的 Android 设备同时支持以下三种主要通信模式:
-
读取器/写入器模式:支持 NFC 设备读取和/或写入被动 NFC 标签和贴纸。
-
点对点模式:支持 NFC 设备与其他 NFC 对等设备交换数据;Android Beam 使用的就是此操作模式。
-
卡模拟模式:支持 NFC 设备本身充当 NFC 卡。可以通过外部 NFC 读取器,访问模拟 NFC 卡。
二、NFC标签调度系统
在设置中打开NFC功能后,Android 设备通常会在屏幕解锁后查找 NFC 标签,在 Android 设备发现 NFC 标签后,期望的行为就是让最合适的 Activity 来处理该 Intent。但是怎么才能根据NFC标签的负载类型去自动找到最适合处理它的Activity,而不是弹窗询问用户该用哪个应用处理这个NFC标签呢?Android 提供了一个特殊的标签调度系统,用于分析扫描到的 NFC 标签、解析它们并尝试找到对扫描到的数据感兴趣的应用。这个标签调度系统通过以下操作来实现这些目的:
- 解析 NFC 标签并确定 MIME 类型(文本/图片/音乐)或 URI(后者用于标识标签中的数据负载)。