Android NFC开发(一)——初探NFC,了解当前前沿技术


官方文档:http://developer.android.com/guide/topics/connectivity/nfc/index.html

我们根据Google的官方文档来

一.什么是NFC

NFC(Near Field Communication 近场通讯),他是当前逐渐火起来的一种技术,在以前,好像还一直不冷不热的样子,现在好像是块要爆发了,所以我们搞Android开发的感觉强撸了一把,随我来学习一下NFC的技术

二.NFC与WIFI,Bluetooth,红外线的差异

这些都是可以做数据传输的,但是差异最大的还是体现在有效距离上了,这里不能超过4CM

三.NFC的工作模式

  • 读卡器模式(Reader/Witer Mode)
  • 仿真卡模式(Card Emulation Mode)
  • 点对点模式(P2P Mode)

四.读卡器模式(Reader/Witer Mode)

我们从某个支持NFC功能的媒介上读取相关数据

五.-仿真卡模式(Card Emulation Mode)

这也是运用比较广泛的,我们可以把手机刷公交,地铁之类的

功能就是这个模式,其原理就是将相应IC卡中的信息(支付凭证)封装成数据包存储起来,使用的时候NFC有个射频器,有设备靠近的时候,就会验证,读写,并且进行相应的处理,比如开门,支付什么的。

六.点对点模式(P2P Mode)

这个模式跟wifi热点有点类似,距离很短,两部设备连接起来可以共享数据,传输速度非常的快,而且如果两部手机都是Android4.2,NFC传输会直接利用蓝牙传输,这种技术称为Android Beam ,所以使用Android Beam传输数据的两部设备不再局限性在4CM内了

7.差异

图片借用了某网站哈

8.如何NFC标签被映射到MIME类型和URI

你开始写你的NFC应用之前,必须了解不同类型的NFC标签是很重要的,标签调度系统如何解析NFC标签和特殊的工作,当它检测到NDEF消息的标记调度系统一样。NFC标签来在广泛的技术和还可以有许多不同的方式写入到其中的数据。机器人具有用于NDEF标准

NDEF数据被封装的消息(内部NdefMessage),其中包含一个或多个记录(NdefRecord)。每个NDEF记录必须根据您要创建的记录类型的规格良好的。Android版 ​​还支持其它类型的标签不包含NDEF的数据,您可以通过在使用类的工作android.nfc.tech包。要了解更多有关这些技术,请参阅高级NFC主题。这些其他类型的标签工作包括编写你自己的协议栈与标签进行通信,因此,我们建议使用NDEF在可能的情况,便于开发和最大支持Android的供电设备。

注意: 要下载完整NDEF的规格,请访问NFC论坛规范下载网站,看到 创建常见类型的NDEF记录了如何构建NDEF记录的例子。

现在,你有NFC标签的背景,下面的章节详细描述了Android的如何处理NDEF格式化的标签。当一个Android设备扫描包含NDEF格式的数据的NFC标签,它解析该消息并试图找出数据的MIME类型或标识的URI。要做到这一点,系统读取所述第一NdefRecord内侧NdefMessage以确定如何解释整个NDEF消息(一个NDEF消息可以有多个NDEF记录)。在一个结构良好的NDEF消息,第一NdefRecord 包含以下字段:

3-bit TNF (Type Name Format)

指示如何解释可变长度类型字段

Variable length type

描述了记录的类型。如果使用TNF_WELL_KNOWN,使用此字段指定记录类型定义(RTD)

Variable length payload

要读取或写入的实际数据的有效载荷。一个NDEF消息可以包含多个NDEF记录,所以不承担全部有效载荷在NDEF消息的第一NDEF纪录。

标签调度系统使用3-bit TNF (Type Name Format)和类型字段来尝试映射MIME类型或URI的NDEF消息。如果成功,它封装了一个内部的信息ACTION_NDEF_DISCOVERED与实际载荷一起意图。不过,也有当标签调度系统不能确定数据的基础上,第一个NDEF记录中的类型的情况。这种情况发生在NDEF数据不能被映射到一个MIME类型或URI,或当NFC标签不包含NDEF数据开始。在这种情况下,一个标签具有关于标签的技术和有效载荷信息对象被封装一个的内部ACTION_TECH_DISCOVERED意图代替。

表1描述了标签调度系统如何TNF和类型字段映射到MIME类型或URI的。它也描述了TNFs不能被映射到一个MIME类型或URI。在这些情况下,标签调度系统回落到 ACTION_TECH_DISCOVERED。

例如,如果标签调度系统遇到类型的记录TNF_ABSOLUTE_URI,它映射该记录成URI的可变长度类型字段。标签调度系统封装该URI在一个数据字段ACTION_NDEF_DISCOVERED意图提供关于标签的其他信息,例如有效载荷沿。在另一方面,如果遇到类型的记录TNF_UNKNOWN,它会创建一个封装标签的技术,而不是意图。

9.如何NFC标签被分派到应用程序

当标签调度系统做创建封装NFC标签和识别信息的意图,它发出的意图,对于意图过滤感兴趣的应用程序。如果有多个应用程序可以处理的意图,提出活动选配,以便用户可以选择的活动。标签调度系统定义了三个意图,这是在最高的顺序列出来最低优先级:

  • ACTION_NDEF_DISCOVERED:此意图是用来启动一个活动时,它包含一个NDEF净荷标签的扫描和是一个公认的类型。这是最高优先级的意图,并且标签调度系统尝试尽可能任何其他意图,之前启动这一意图的活动。

  • ACTION_TECH_DISCOVERED:如果没有活动登记办理

  • ACTION_TAG_DISCOVERED:如果没有活动处理这一意图开始-

  • ACTION_NDEF_DISCOVERED或ACTION_TECH_DISCOVERED 意图。

标签调度系统工作的基本方法如下:

  • 尝试启动与由标签调度系统解析NFC标签(或时创建的意图一个Activity ACTION_NDEF_DISCOVERED或ACTION_TECH_DISCOVERED)。

  • 如果这一意图没有活动过滤器,尝试启动下一个优先级最低的意图(可以是活动ACTION_TECH_DISCOVERED或ACTION_TAG_DISCOVERED),直到意图或直至标签调度系统中的应用程序过滤器尝试所有可能的目的。

  • 如果没有应用程序筛选任何意图的,什么也不做。

只要有可能,以NDEF消息和工作ACTION_NDEF_DISCOVERED意图,因为它是最特定出的三个。此意向,您可以在比其他两个意图更适当的时间启动应用程序,给用户更好的体验。

简介先讲到这里,后面就开始实战了,又不懂的可以翻越官方文档:http://developer.android.com/guide/topics/connectivity/nfc/nfc.html

Android NFC开发(一)——初探NFC,了解当前前沿技术的更多相关文章

  1. android游戏开发系列(2)——背景音乐播放技术

    背景音乐通常播放时间较长,且文件体积也相对较大.这类资源如果放在内存中,一方面给硬件资源本身就很紧缺的手机造成了负担,另一方面通常也没有这方面的需求,放在内存中,在调用时播放速度较快,而长时音乐文件通 ...

  2. Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法

    Android NFC开发(二)--Android世界里的NFC所具备的条件以及使用方法 NFC的应用比较广泛,而且知识面也是比较广的,所以就多啰嗦了几句,我还还是得跟着官方文档:http://dev ...

  3. 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING

    <Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th  2014 Email:skyseraph00@163.com 更多精彩请直接 ...

  4. 用Android模拟器也可以开发和测试NFC应用

    从Android2.3开始支持NFC.不过NFC应用只能在Android手机(或平板电脑)上测试和开发,而且Android手机还必须有NFC芯 片.而且如果测试NFC传输文件时至少需要两部支持NFC的 ...

  5. Android NFC开发概述

    NFC手机相比普通手机来说,有以下3个附加功能:  1.可以当成POS机来用,也就是“读取”模式   2.可以当成一张卡来刷,也就是NFC技术最核心的移动支付功能  3.可以像蓝牙.Wi-Fi一样做点 ...

  6. nfc开发

    很多Android设备已经支持NFC(近距离无线通讯技术)了.本文就以实例的方式,为大家介绍如何在Android系统中进行NFC开发. Android NFC开发环境 使用硬件:Google Nexu ...

  7. 《NFC开发实战详解》笔记

    地点:30教 5楼 男厕对面 * 时间:下午三点 * 天气:中雨 * 状态:3    * ******************************************************* ...

  8. Android NFC近场通信2——NFC标签调度

    上面一篇文章简单介绍了NFC的背景和技术应用,今天主要是讲解一下NFC如何发起通信和标签通信(主要是翻译android官网的资料,中间加入个人心得). NFC总是在一个发起者和一个被动目标之间发生.发 ...

  9. NFC Basics(基本NFC)——翻译自developer.android.com

    NFC Basics 关于收发NDEF格式的消息,以及相关的api. 非NDEFdata以及其它更深入技术请參见Advanced NFC. 在android端使用NDEF有两种情况: - 从标签读取N ...

随机推荐

  1. Not saving crash log because we have reached the limit for logs to store on disk.解决办法

    一.问题简述: Xcode, window>Devices>DEVICES选中自已的设备,打开控制台:提示日志存量已达限制,这个是系统抛出的log."Not saving cra ...

  2. mysql进阶(二十七)数据库索引原理

    mysql进阶(二十七)数据库索引原理 前言   本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb.   第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础.    ...

  3. 用Maven打包成EAR部署JBoss

    基于原理的架构里面,考虑这次升级版本,可谓是一步一个脚印的向上走啊,可以说步步为坎,别人的知识,和自己的知识,相差很多啊,什么都懂点,但是具体没有使用,就理解不深刻了,心有余而力不足,所以一切我们自己 ...

  4. 对 jiffies 溢出、回绕及 time_after 宏的理解

    原文如下: 关于jiffies变量:     全局变量jiffies用来记录自启动以来产生的节拍的总数.系统启动时会将该变量初始化为0,此后,每当时钟中断产生时就会增加该变量的值.jiffies和另外 ...

  5. 如何在mac OS X中查看Emoji表情的含义

    使用ctrl+空格,在搜索框中搜索 TextEdit程序,其实中文是 文本编辑 程序, 运行,在菜单中选择 编辑->特殊字符 然后可以看到每个图标的说明啦

  6. (NO.00005)iOS实现炸弹人游戏(四):游戏数据的初始化(一)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 上一篇我们初步看了一下MainScene类的初始化方法里都做了神 ...

  7. 关于"net::ERR_CONNECTION_ABORTED"和"Firebug 达到了 Post 请求大小限制"的问题

    1.其中"net::ERR_CONNECTION_ABORTED"是在Chrome的控制台中打印出来的. 2."Firebug 达到了 Post 请求大小限制" ...

  8. 【一天一道LeetCode】#350. Intersection of Two Arrays II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...

  9. UNIX网络编程——TCP/IP简介

    一.ISO/OSI参考模型 OSI(open system interconnection)开放系统互联模型是由ISO(International Organization for Standardi ...

  10. nginx root、alias、location指令使用方法

    一.nginx root指令 1. Nginx配置 相关配置如下图: 通过配置root目录到"/wwwroot/html/"位置 在用虚拟主机方法,主机名称是test,需要大家配置 ...