您的位置:首页 > 移动开发 > Android开发

Android开发之NFC介绍及应用

2015-12-15 09:48 274 查看
一、NFC介绍

NFC 是Near Filed Communication缩写,即近距离无线通讯技术,由飞利浦公司和索尼公司共同研发的NFC是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC和智能控件工具间进行近距离无线通信。NFC提供了一种简单、触控式的解决方案,可以让消费者简单直观的交换信息、访问内容与服务。

NFC 将非接触读卡器、非接触卡、和点对点(Peer to Peer)功能整合进一块单芯片,为消费者的生活方式提供了不计其数的全新机遇。这是一个开放接口平台,可以对无线网络进行快速、主动设置,也是虚拟连接器,服务于现有蜂窝状网络、蓝牙和无线设备。

与RFID(Radio Frequency Identification)一样,NFC信息也是通过频谱中无线频率部分的电磁感应耦合方式传递,但两者之间还是存在很大的区别。首先,NFC是一种提供安全、轻松、迅捷的通信无线连接技术,其传输范围比RFID小,RFID的传输范围可达到几米,几十米,但由于NFC提供了独特的信号衰减技术,相对于RDID来说NFC具有距离近,带宽高,能耗低的特点。其次,NFC与现有非接触智能卡技术兼容,目前已经成为得到越来越多技术厂商支持的正式标准。再次,NFC还是一种近距离连接协议,提供各种设备间轻松,快速,安全的而自动的通信。与无线世界的其他连接方式相比,
NFC是一种近距离的私密通讯方式。最后,RFID更多的被应用在生产,物流,跟踪,资产管理上,而NFC则在门禁、公交、手机支付等领域发挥着巨大的作用。

同时,NFC还优于红外和蓝牙传输方式,作为一种面向消费者的交易机制,NFC比红外线更快,更可靠而且简单很多,不用向红外那样必须严格的对齐才能传输数据。与蓝牙相比,NFC面向近距离交易,适用于交换财务信息或敏感的个人信息等重要数据。蓝牙能够弥补NFC通信距离不足的缺点,适用于较长距离的数据通信。因此,NFC和蓝牙互为补充,共同存在。事实上,快捷轻型的NFC协议用于引导两台设备间的蓝牙配对过程,促进了蓝牙的使用。

NFC手机内置NFC芯片,组成RFID模块的一部分,可以当做RFID无源标签使用--用来支付费用;也可以当做RFID读写器--用作数据交换与采集。NFC技术支持多种应用,包括移动支付与交易,对等式通讯及移动中信息访问等。通过NFC手机,人们可以在任何地点,任何时间,通过任何设备,与他们希望得到的娱乐服务于交易联系在一起,从而完成付款,获取海报信息等。NFC设备可用于非接触式智能卡,智能卡的读写器终端,以及设备对设备的数据传输链路,其应用主要可用于四种基本类型:用于付款和购票,用于电子票证,用于智能媒体以及用于交换传输数据。

二、NFC模式

NFC支持两种通信模式。

主动模式:在这种模式,目标设备和发起通讯设备都有动力,互相之间可以轮流传输信号。被动模式:发起设备差生无线电信号,目标设备由这个信号的电磁成提供动力。目标设备通过调制电磁场回应发起设备。

操作模式:NFC设备可以运行在ISO/IEC 18092,NFC IP-1,和ISO-IEC 14443三种无线智能卡标准下。读/写:在这种模式下,开启NFC功能的手机可以读写任何支持的标签,读取其中的NFC数据格式标准的数据。点对点:这种模式下,两个NFC设备可以交换数据,例如可以交换虚拟名片等数据。

三、Android平台上的NFC开发

在Android NFC应用中,Android手机通常是作为手机中的发起者,也就是作为NFC的读写器,Android手机也可以模拟作为NFC通信的接受者且从Android 2.3.3起也支持P2P通信。

Android对NFC的支持主要在 android.nfc 和 android.nfc.tech 两个包中。

android.nfc 包中主要类如下:

NfcManager 可以用来管理Android设备中指出的所有NFC Adapter,由于大部分Android设备只支持一个NFC的Adapter,可以使用getDefaultAdapter 来获取系统支持的Adapter。

NfcAdapter 本设备的NfcAdapter,可以定义Intent来请求系统检测到的tags的提醒发送到你的Activity,并提供方法注册前台tag提醒发布和前台NDEF推送。前台NDEF推送是当前android 版本唯一支持的p2p  NFC通信方式。

NdefMessage NDEF是NFC论坛定义的数据结构,用来有效的存数据到NFC tag.比如文本,url,和其他MINE类型,一个NdefMessage扮演一个容器,这个容器存哪些发送和读到的数据。一个NdefMessage对象包含0或多个NdefRecord,每个NdefRecord有一个类型,比如文本,url,广告,或其他MINE数据。在NdefMessage里的一NfcRecord的类型来发送tag到一个android设备上的activity。

Tag 表示一个被动的NFC目标,比如tag,card,钥匙挂扣,甚至是一个电话模拟的NFC卡,当一个tag被检测到,一个tag对象将被创建并且封装到一个Intent里,然后NFC发布系统将这个Intent用startActivity发送到注册了接收这种Intent的Activity中,你可以用getTechList()方法来得到这个tag支持的技术细节和创建一个android.nfc.tech提供的TagTechnology对象。

android.nfc.tech包含那些对tag查询属性和进行I/O操作的类。这些类分别标示一个tag支持的不同的NFC技术标准。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android nfc