NFCWord格式.docx
- 文档编号:15813017
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:16
- 大小:28.86KB
NFCWord格式.docx
《NFCWord格式.docx》由会员分享,可在线阅读,更多相关《NFCWord格式.docx(16页珍藏版)》请在冰豆网上搜索。
一个拥有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
<
uses-permissionandroid:
name="
android.permission.NFC"
/>
另外还需要声明的是能够支持应用程序的最低SDK版本,由于对NFC的支持是在API10以后才比较完善,因此我们需要使用:
uses-sdkandroid:
minSdkVersion="
10"
/>
android的应用程序都是通过上传到AndroidMarket上供用户下载的,我们可以通过加入如下一段声明使我们的应用程序能够被归类到“支持NFC”的手机型号中:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uses-featureandroid:
android.hardware.nfc"
android:
required="
true"
pstyle="
text-indent:
2em;
"
>
最后,我们可以通过声明一些intentfilter来告诉操作系统该Activity可以处理NFC数据,有三种声明的方式:
1<
intent-filter>
<
actionandroid:
android.nfc.action.NDEF_DISCOVERED"
dataandroid:
mimeType="
mime/type"
/intent-filter>
android.nfc.action.TECH_DISCOVERED"
meta-dataandroid:
resource="
@xml/nfc_tech_filter.xml"
android.nfc.action.TAG_DISCOVERED"
这三种intentfilter的声明方式使用在特定的情况下。
因此我们需要通过分析具体的应用程序来决定使用哪一种方式。
具体怎么选择将在后面提到(标签调度系统)。
这里我们可以看一看一个完整的AndroidManifest.xml例子,取自于NFCDemo。
17
18
19
20
21
22
23
24
25
26
27
28
29
?
xmlversion="
1.0"
encoding="
utf-8"
manifestxmlns:
android="
package="
com.example.android.nfc"
android.permission.CALL_PHONE"
application
icon="
@drawable/icon"
label="
@string/app_name"
>
activityandroid:
.simulator.FakeTagsActivity"
theme="
@android:
style/Theme.NoTitleBar"
android.intent.action.MAIN"
categoryandroid:
android.intent.category.LAUNCHER"
/activity>
TagViewer"
android.intent.category.DEFAULT"
/application>
9"
/manifest>
NFC(近场通信)
NFC是一套短距离的无线通信,通常距离是4厘米或更短。
NFC工作频率是13.56MHz,传输速率是106kbit/s到848kbit/s.NFC总是在一个发起者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NFC