NFC.docx
- 文档编号:2901977
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:16
- 大小:28.86KB
NFC.docx
《NFC.docx》由会员分享,可在线阅读,更多相关《NFC.docx(16页珍藏版)》请在冰豆网上搜索。
NFC
在新版本的android中,近场通讯已经被支持。
所谓近场通讯(NFC),又称近距离无线通信,是一种短距离的高频无线通信技术,允许电子设备之间进行近距离的(10厘米)非接触式点对点传输,NFC由非接触式射频识别(RFID)及互联互通技术整合演变而来,实现了在单一芯片上结合感应式读卡器、感应式卡片和点对点功能,能在短距离内与兼容设备进行设别和数据交换。
NFC在最初仅仅是对RFID技术和网络技术的简单合并,但是在现在已经演变成为一种短距离无线通信技术,发展态势相当迅速。
与RFID不同的是,NFC具有双向识别和连接的特点,工作于13.56MHz频率范围,NFC采取了独特的信号衰减技术,相对于RFID来说NFC具有距离近、带宽高、能耗低等特点。
NFC与蓝牙相比较,它不需要复杂设置程序,也可以简化蓝牙连接。
NFC略胜蓝牙的地方在于设置程序较短,但是无法达到蓝牙的低功率。
他的最大数据传输量是424kbit/s远小于蓝牙v2.1的2.1Mbit/s。
虽然NFC在传输速度与距离比不上蓝牙,但是由于NFC技术不需要电源,对于移动电话和消费性电子产品来说,这种技术的使用比较方便。
它的短距离通信特征正是其优点,由于耗电量低、一次只和一台机器连接,因此其拥有较高的保密性与安全性,NFC有利于信用卡交易时避免被盗用。
NFC的目标并非是取代蓝牙等其他无线技术,而是在不同的场合、不同的领域起到相互补充的作用。
不过虽然Android系统已经提供了关于RFC的API,但是跟蓝牙和wifi一样,它必须有硬件的支持。
在实际硬件的支持上面,现在的情况还不是很普及,前些日子有新闻称google将在纽约和旧金山测试NFC支付,而iPhone5据说还是不会集成NFC的功能,Android方面,google早在NexusS上就已经内置了NFC。
NFC通信总是涉及了一个发起设备和一个目标设备,可以理解为一个阅读器和一个标签设备,阅读器可以产生一个射频场用来给一个标签提供电源,正是这个类似于RFID的特性使得一个NFC的标签设备可以做成是一个简单的标签、卡片的无源的形式。
另外,当通信的双方都开启了阅读器的情况下,也可以通过RFC建立起点到点的通信。
一个拥有NFC硬件支持的Android设备典型的设置是在屏幕未锁的状态下工作在NFC通信的发起设备模式,这个模式就是通常所说的标签读写器。
工作在这个模式下的Android设备将会主动的去搜寻有效范围内的NFC标签,并且在适当的时候对这些搜寻到的标签进行处理工作。
Android2.3.3版本下还加入了少量的对NFC的P2P方面的支持。
NFC的标签有很多种不同的种类,包括了各种复杂程度,随着复杂程度的不同,它们所存储的信息量及种类也有所不同,例如某些简单的标签仅仅提供了供读写的语义,并且只提供了小块一次性写入的只读存储;而一些稍微复杂一点的标签还提供了一些数学运算的功能,支持加密从而可以进行身份验证功能;最复杂的标签上面还可以包括操作环境,允许在标签上面执行代码并且进行复杂的交互。
下一次开始具体学习Android为NFC提供的API。
AndroidNFCAPI概述
Android中提供的与NFC相关的较高层的类都包含在android.nfc中,这个包中包含了用于与本地NFC适配器交互的类,用于代表已经识别的标签的类以及用来使用NDEF(NfcDataExchangeFormat)格式的类。
这个包中主要包括了如下几个类:
Showentries
Search:
类名
描述
NfcManager
NFC的一个高级管理类,用于枚举出本机的NFC适配器。
由于大多数的设备都只提供一个NFC适配器,因此在大多数情况下我们可以通过getDefaultAdapter(Context)这个静态的方法来得到本地的NFC适配器的引用。
NfcAdapter
该类代表了本地的NFC适配器。
它定义了如何将NFC标签的信息传达给Activity的intent,并且提供了用于注册前台标签调度和前台的数据推送的方法。
前台的基于NDEF的数据推送是目前Android仅提供的点到点支持方式。
NdefMessageandNdefRecord
NDEF是由NFC论坛所定义的一种数据结构,它是为了高效率的在NFC标签上存储数据,例如文本、url或者其他的数据格式。
NdefMessage是用于封装需要传输或读取的数据的容器。
而每一个NdefMessage包含了0个或若干个NdefRecord。
每个NDEF的记录都包括一种有效类型的数据。
在一条NDEF消息中的第一个记录的作用是向android的Activity调度一个标签。
Tag
该类代表了一个无源的NFC标签。
这种标签可以来自于各种物体,比如通常所用的物理标签、卡片、钥匙卡或者也可以是一部可以仿真成NFC标签的电话机。
当NFC识别设备发现了一个NFC标签,系统就会创建一个NFCTag对象并在对象中封装一个intent。
然后NFC的标签调度系统将会负责将这些intent调度到适当的Activity中。
可以通过getTechList()方法来决定使用适合该Tag对象的读写标准并且可以使用android.nfc.tech包所提供的相关类来创建与此相关的TagTechnology对象。
Showing1to4of4entries
Android.nfc.tech包主要是包括了一些用于查询特定标签的特性和I/O操作的类。
所有的这些类都需要实现TagTechnology接口,它们包括NfcA、NfcB、NfcF、NfcV、IsoDep、Ndef、NdefFormtable、MifareClassic、MifareUltralight这几个类。
Android与NFC相关的类大致就是如上几个,下面我们简单的了解一下如何开始NFC的编程。
根据Android系统所遵循的权限机制,我们需要在AndroidManifest.xml中对需要使用的权限进行声明,这样在程序进行安装时将会提示用户该程序将会使用到哪些设备,让用户来决定是否赋予应用程序相应的权限,Android通过这样的机制来提高系统的安全性。
因此当我们在应用程序中需要使用到NFC硬件的时候,我们应当在AndroidManifest.xml中加上:
1
name="android.permission.NFC"/> 另外还需要声明的是能够支持应用程序的最低SDK版本,由于对NFC的支持是在API10以后才比较完善,因此我们需要使用: 1 minSdkVersion="10"/> android的应用程序都是通过上传到AndroidMarket上供用户下载的,我们可以通过加入如下一段声明使我们的应用程序能够被归类到“支持NFC”的手机型号中: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 name="android.hardware.nfc"android: required="true"/>1 2em;">最后,我们可以通过声明一些intentfilter来告诉操作系统该Activity可以处理NFC数据,有三种声明的方式: 1 name="android.nfc.action.NDEF_DISCOVERED"/> mimeType="mime/type"/> name="android.nfc.action.TECH_DISCOVERED"/> name="android.nfc.action.TECH_DISCOVERED" android: resource="@xml/nfc_tech_filter.xml"/> name="android.nfc.action.TAG_DISCOVERED"/> 这三种intentfilter的声明方式使用在特定的情况下。 因此我们需要通过分析具体的应用程序来决定使用哪一种方式。 具体怎么选择将在后面提到(标签调度系统)。 这里我们可以看一看一个完整的AndroidManifest.xml例子,取自于NFCDemo。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 xmlversion="1.0"encoding="utf-8"? > android=" package="com.example.android.nfc" > name="android.permission.NFC"/> name="android.permission.CALL_PHONE"/> android: icon="@drawable/icon" android: label="@string/app_name" > name=".simulator.FakeTagsActivity" android: theme="@android: style/Theme.NoTitleBar"> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/> name="TagViewer" android: theme="@android: style/Theme.NoTitleBar" > name="android.nfc.action.TAG_DISCOVERED"/> name="android.intent.category.DEFAULT"/> minSdkVersion="9"/> name="android.hardware.nfc"android: required="true"/> NFC(近场通信) NFC是一套短距离的无线通信,通常距离是4厘米或更短。 NFC工作频率是13.56MHz,传输速率是106kbit/s到848kbit/s.NFC总是在一个发起者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NFC