NFCWord格式.docx

上传人:b****5 文档编号:15813017 上传时间:2022-11-16 格式:DOCX 页数:16 大小:28.86KB
下载 相关 举报
NFCWord格式.docx_第1页
第1页 / 共16页
NFCWord格式.docx_第2页
第2页 / 共16页
NFCWord格式.docx_第3页
第3页 / 共16页
NFCWord格式.docx_第4页
第4页 / 共16页
NFCWord格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

NFCWord格式.docx

《NFCWord格式.docx》由会员分享,可在线阅读,更多相关《NFCWord格式.docx(16页珍藏版)》请在冰豆网上搜索。

NFCWord格式.docx

一个拥有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总是在一个发起者

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1