标签:数字 技术培训 contact community 优化 系统 后台 dex 字符串
本文介绍Nokia设备所支持的近场通信技术(NFC)及相关的功能。旨在为使用 Qt/Symbian/Java™ API为Nokia手机开发应用的开发者 刚开始接触NFC开发时提供有用的信息。
NFC是Near Field Communication的缩写,即近场通信。这是一种短距离无线电技术,使得两台设备在接触或靠得很近时互相通信。
两台设备进行基于NFC的通信时,可能是一台设备做为读/写者,另一个做为标签。
标签是一个简单的薄薄的设备,包含一个天线和小容量的存储空间。标签是一个被动设备,由电磁场提供电力。标签的内存有只读,可擦写,只能写一次 这些不同的类型。
读取器是一个主动设备,产生无线电信号与标签通信。在被动通信模式,当读取器与被动设备靠得很近时,读取器为被动设备提供电力。
NFC设备支持两种通信模式。
在这种模式,目标设备和发起通信设备都有动力,互相之间可以轮流传输信号。
发起设备差生无线电信号,目标设备由这个信号的电磁场提供动力。目标设备通过调制电磁场回应发起设备。
NFC可以运行在ISO/IEC 18092, NFC IP-1, 和ISO/IEC 14443三种无线智能卡标准下(contactless smart card standard)
在这种模式,开启NFC功能的手机可以读写任何支持的标签, 读取其中的NFC数据格式标准的数据。
在这种模式下,两个NFC设备可以交换数据。 例如,你可以分享启动蓝牙或Wi-Fi连接的参数来启动 蓝牙或Wi-Fi连接。你可以交换如虚拟名片或数字相片等数据。点对点模式符合ISO/IEC 18092标准。
注意:NFC的symbian实现现在支持建立蓝牙连接,还不支持Wi-Fi。Java实现还不支持点对点模式。
支持NFC的手机在与标签交互时扮演读取器的角色。在这种模式手机也可做为标签或被读取的无线卡片。 注意:Symbian和Java实现还不支持这种模式。
本章我们来看看NFC的使用场景和案例
在这种场景中,你可以使用带有NFC功能的Nokia手机触及NFC标签,接收URL,电话号,文本,然后可以用这些来定义启动某项服务所需要得信息。
智能海报是这种应用的例子,在智能海报背面贴上NFC标签,当带有NFC功能的Nokia手机触及NFC标签时,手机读取标签的信息,然后根据信息的种类,Nokia手机会打开一个视频流,或打开网页浏览器,或询问用户是否愿意拨打一个电话。
带有NFC功能的手机可以在点对点模式下分享数据。
例如,两台具有NFC的Nokia手机可以分享名片信息。当一个用户选择要分享的联系人信息后,手机向另一台手机在NFC无线范围内发送一个无线信号,另一台手机会识别NFC数据格式中包含的分享信息。
注意:分享不是通过NFC完成的。NFC会初始化蓝牙服务,分享实际是通过蓝牙完成的。
NFC能帮助建立设备链接,而不需要任何配置或安装。例如,只需用带NFC的手机触及蓝牙耳机即可建立蓝牙配对。蓝牙耳机中内置一个NFC标签,其中有建立蓝牙配对所需要的所有信息,信息保存成NFC数据格式。这里手机扮演一个读取者的角色。
带NFC的手机可以用于票务应用,作为车票可以替代传统物理车票。使用是手机接触读票器。用户,可以在售票机支付后,用手机接触售票机给手机票充值。这里NFC手机扮演卡片的角色,工作在模拟卡片模式。
要使用NFC手机作为旅行票,手机里必须有一个叫保密元素(secure element)的保密环境。保密环境运行票务应用,这里保存比如,剩余的旅行时间,或预付的旅程。
注意:票务用例目前不被Nokia手机支持。
带NFC的手机可以像信用卡一样用于支付。 支付时,用户必须将手机与支付终端接触。这里NFC手机扮演一个卡片(带芯片的信用卡),支付终端是读取者,工作在模拟卡片模式。
NFC手机必须有保密元素,在其中像基于芯片的信用卡一样运行支付应用程序。
注意:支付用例目前不被Nokia手机支持。
NFC标签可以用在如海报的应用,记录少量信息提供给活动的NFC设备。储存的数据可以包括任何数据例如URL,电话号码或日历信息等。
为了使不同NFC标签提供者和NFC设备制造商的产品相互协作,NFC论坛定义了四种标签。
要查看目前Symbian和MeeGo 1.2支持的标签,请看‘NFC 标准和标签支持’。
NFC 论坛是一个推广NFC技术的联盟,NFC论坛推出技术规范来保证设备和服务之间的配合,并为市场提供NFC技术培训。
在NFC论坛的技术规范网站http://www.nfc-forum.org/specs/spec_list/查看NFC论坛的标签种类。 标签的规范定义了实现 阅读器/擦写器的技术信息和相应的与之互动的NFC设备的控制功能
类型1标签比较便宜适合于多种NFC应用。
NFC论坛设备如何操作类型1标签,如何发现,读取和写入NDEF数据(参看章节‘NDEF‘)参看类型1标签操作规范:http://www.nfc-forum.org/specs/spec_list/
类型2与类型1类似,也是由NXP/Philips MIFARE Ultralight标签衍生而来的。
类型3由索尼FeliCa标签的非保密部分衍生而来。比类型1,2的标签昂贵。
类型4与类型1类似,是由NXP DESFire标签衍生而来的。
这是由NXP半导体定义的私有标签类型。
更多关于 MIFARE经典标签的信息请查看 NXP网站:http://www.nxp.com/.
更多关于Symbian和MeeGo 1.2 Harmattan平台支持的标准请看‘NFC标准和支持的标签‘一章。
ISO 14443是著名的国际标准,原来是为非接触芯片卡片在13.56MHz无线电通信设计的。 ISO 14443 从无线层到命令协议定义了一个协议栈。 无线层ISO14443-2有两个版本,具有不同的调制和bit编码方法。称为A,B版。类似的,ISO 14443指定了两个版本的包框架和底层协议部分(ISO 14443-3)。 ISO协议栈的最高层定义了传输信息的命令接口(ISO 14443-4)。
两台NFC设备间的点到点通信是由近场通信--接口和协议规范,NFCIP-1定义的机制实现的。这个NFC关键规范也被称为ISO 18092和ECMA-340。
NFCIP-1的协议栈基于ISO 14443. 主要的不同时一个新的命令协议,替换了之前协议栈的最高层。
NFCIP-1 包括两个通信模块使得NFC设备之间能工作在点对点的模式,也支持与基于NFCIP-1的NFC标签通信。
MIFARE 指由NXP半导体开发的NFC标签类型。MIFARE标签被广泛用于运输工具应用的内存卡。 ISO 14443定义了从无线层到命令协议的协议栈。
FeliCa是Sony公司开发的的专利NFC标签技术,被广泛用于专买支付和亚洲的运输工具应用。FeliCa标签也被集成在移动FeliCa系统的手机模型中。Felica标签属于日本的工业标准。标签基于被动模式的ISO 18902,带有额外的认证和加密功能。
为实现标签和NFC设备,及NFC设备之间的交互通信,NFC论坛定义了称为NFC数据交换格式(NDEF)的通用数据格式。
NDEF是轻量级的紧凑的二进制格式,可带有URL,vCard和NFC定义的各种数据类型。
NDEF使得NFC的各种功能能容易的中使用各种支持的标签类型传输数据,因为NDEF封装了标签的种类细节信息,使得应用不用关心与何种标签在通信。
NDEF交换的信息由一系列记录组成。每条记录包含一个有效载荷。自爱和内容可以似乎URL,MIME媒质,或NFC定义的数据类型。使用NFC定义的数据类型,载荷内容必须被定义在一个NFC记录类型定义(RTD)文件中。
记录中数据的类型和大小由记录载荷的头部注明。
头部包含,类型域用来指定载荷的类型。载荷的长度数的单位是字节(octet)。可选的指定载荷是否带有一个NDEF记录。
类型域的值由类型名字格式指定,请在NFC论坛网站http://www.nfc-forum.org/specs/spec_list/ 的NDEF技术规范的3.2.6章查看支持的类型及相应的TNF值。
NFC论坛定义了几种优化的记录类型,用在NDEF记录中。每个NFC论坛记录类型定义在记录类型定义(RTD)文档中
NFC定义了一下RTD:
最简单的文本记录类型,可携带Unicode字符串。文本记录可包含在NDEF信息中作为另一条记录的描述文本。 URI记录类型可用于存储网站地址,邮件,和电话号码,存储成经过优化的二进制形式。
智能海报RTD第一了如何将,URL,短信或电话号码编入NFC论坛标签,及如何在设备间传递这些信息。
为加强点对点模式的操作,NFC论坛定义了一个链路级的协议称为 逻辑链路控制协议(LLCP)。 在NFC点对点协议栈中,LLCP提供对NFCIP-1/ISO18092的额外支持。
LLCP提供两种链路层连接,都支持收发数据,使用下面的数据交换方法:
Qt NFC API包含在跨平台的Qt Mobility工程中。做为connectivity API的一部分,集成在Qt SDK中。
注意:截止本文发布时间,NFC API可能还处在技术预览阶段。
更多关于Qt Mobility API的NFC信息,请参阅 http://doc.qt.nokia.com/qtmobility-1.2.0-tp1/connectivity-api.html. Qt Mobility 信息请参阅 Qt Mobility 开发。
Qt NFC API支持一下用例:
API | 描述 |
QLlcpServer | NFC LLCP 基于socket的服务器 |
QLlcpSocket | NFC LLCP socket |
QNdefFilter | 过滤符合条件的 NDEF 消息的过滤器 |
QNdefMessage | NFC NDEF 消息 |
QNdefNfcTextRecord | NFC 文本 RTD |
QNdefNfcUriRecord | NFC URI RTD |
QNdefRecord | NFC NDEF 记录 |
QNearFieldManager | 通过这个类访问NFC事件的通知 |
QNearFieldTagType1 | 与NFC Tag Type 1 标签通信的接口 |
QNearFieldTagType2 | 与NFC Tag Type 2 标签通信的接口 |
QNearFieldTagType3 | 与NFC Tag Type 3 标签通信的接口 |
QNearFieldTagType4 | 与NFC Tag Type 4 标签通信的接口 |
QNearFieldTarget | 与目标设备通信的接口 |
Symbian^3 提供下列NFC API:
API | Description |
NFC Discovery API | 提供订阅和发现标签和NDEF消息的方法 |
NFC Tag Extension API | 提供实现和访问(读/写)各种NFC目标的方法 |
NDEF API | 提供处理NDEF消息和访问NDEF消息的方法 |
NFC Peer-to-Peer API | Provides LLCP API for peer-to-peer communication between NFC devices |
NFC Content Handler API | 提供订阅和接收NDEF消息的ECOM插件接口 |
Symbian API 支持一下用例:
注意:NFC的Symbian实现不支持模拟卡模式的操作。
在Nokia开发者文档库查看Symbian^3 开发者库中的NFC Symbian API,并下载例子: http://library.developer.nokia.com/topic/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-7A72B008-901E-454D-AD93-F99555CA904A.html#GUID-7A72B008-901E-454D-AD93-F99555CA904A.
JSR 257 Contactless Communication API 1.0 在Symbian 设备上支持NFC功能。 Contactless Communication API使中间件(MIDlet)能使用移动设备上的NFC功能。中间件能读写标签(集成电路)上的小量数据。
Contactless Communication API支持下列用例:
注意:NFC的Java实现不支持模拟卡模式或点对点模式的操作。
参看Nokia开发者文档库中Java开发者库的NFC Java API用例并下载例子: http://library.developer.nokia.com/index.jsp?topic=/Java_Developers_Library/GUID-9248DD7F-23BE-40A6-A8DC-823783443F10.html.
在下面链接查看支持NFC的Nokia手机信息:
http://www.developer.nokia.com/Devices/Device_specifications/?filter1=all&filter2=nfc.
Symbian和MeeGo 1.2 Harmattan平台都支持下列NFC标准和标签:
支持下列NFC论坛标签种类
注意: NFC的Java实现不支持NFC 论坛标签种类 4
其他支持的专利标签种类:
Symbian实现中应用程序不能在后台处理保留RTD如 智能海报,URI, 蓝牙耳机,和其他通用MIME类型。
当发现一个包含保留RTD的标签时(参看下面的章节)应用程序的UI前台会收到一个callback,类似的,分享(或快捷设置)智能当应用程序在前台是触发。
尽管如此,用户可以定义自己的数据类型,这样应用程序在前台后台都可以处理用户自定义数据类型。
Symbian实现支持多NDEF记录处理,首先读取第一条记录,检查是否有处理器(NFC DIscovery API 或者一个NFC Content Handler API 客户端)更具记录类型来处理数据。如果有,则停止处理,将整个NDEF消息交给特定的处理器。。 如果第一条记录没找到处理器,则移向第二条,重复查找过程。就是说,如果找到一个记录的任何处理器,则整个NDE消息都交给这个处理器处理。
注意: 支持多NDEF记录但不支持多NDEF消息。
NFC的Symbian实现提供对一下RTD处理的支持:
RTD | Identifier |
Bluetooth 2.0 | urn:nfc:ext:nokia.com:bt |
Bluetooth 2.1 | application/vnd.bluetooth.ep.oob |
Handover Request | urn:nfc:wkt:Hr |
Handover Select | urn:nfc:wkt:Hs |
Smart Poster | urn:nfc:wkt:Sp |
URI record | urn:nfc:wkt:U |
要处理保留RTD,应用程序必须在前台,不能从后台进程读取保留NDEF,参见 “ Nokia手机中的NFC数据处理 ”章节。
Symbian实现可以从NFC标签中读取一下文件类型:
类型 | 子类型 |
image | 支持所有子类型 |
audio | 支持所有子类型 |
text | 支持所有子类型 |
video | 支持所有子类型 |
application | vnd.Nokia.ringing-tone |
application | vnd.symbian.install |
application | java-archive |
application | x-java-archive |
application | vnd.wap |
标签:数字 技术培训 contact community 优化 系统 后台 dex 字符串
原文地址:http://www.cnblogs.com/shaobojiao/p/7921648.html