Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

简介: <div class="markdown_views"> <h1 id="android-nfc开发二android世界里的nfc所具备的条件以及使用方法">Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法</h1> <hr> <blockquote> <p>NFC的应用比较广泛,而且知识面也是比较广的,所以就多啰嗦了几句,我还还是

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


NFC的应用比较广泛,而且知识面也是比较广的,所以就多啰嗦了几句,我还还是得跟着官方文档:http://developer.android.com/guide/topics/connectivity/nfc/index.html来,看这篇的同学可以先大概的了解一下Android NFC开发(一)——初探NFC,了解当前前沿技术

1.Android NFC的历史

真要说起来,NFC在Android上,也是从API9才开始支持的,但是到了API14 Google才对NFC大力开发,所以等到了API15的时候,NFC的传输速度就得到了很大的加强

2.NFC 标签

如果你有支持NFC的手机,你打开后盖,你看看到一块薄薄的东西,这就是NFC标,标签的种类也是种类繁多,功能野人参参不齐,有的只能读写,有的却能上天,而在Android SDK 中定义的NFC标准被称为NDEF(数据交换格式)

3.NDEF数据

Android SDK中有三种NDEF数据的操作

  • 从NFC便签读取NDEF格式的数据
  • 向NFC标签写入NDEF格式的数据
  • 通过Android Beam技术将NDEF数据发送到另一部NFC设备

4.非NDEF数据

上篇也简单的说了这个机制
不管原生的如何支持,就像Android一样,依旧有一个独特的要求,比如我们存储的数据需要任意的,这就要我们自己定义数据,这也叫做非NDEF数据,这些数据其实就是普通的字节流罢了

5.NFC的三重过滤机制

两个终端设备要想读写数据,会有个短暂配对的时间,数据接收端会根据具体的数据格式和标签类型调用相应的Activity(Tag Dispatch),这个activity需要定义一个intent filter中指定不同的过滤机制,分三个等级,所以叫NFC的三重过滤机制

  • NDEF_DISCOVERED

    只过滤固定格式的NDEF数据,比如纯文本,指定协议(HTTP FTP SMB等)的URI

  • TECH_DISCOVERED

    当ACTION_NDEF_DISCOVERED指定的过滤机制无法匹配Tag时,就会使用这种过滤机制进行匹配,这种过滤机制并不是通过Tag的数据进行匹配的,而是根据Tag支持的数据存储格式进行匹配,因此这种机制使用范围很广

  • TAG_DISCOVERED

    如果将NFC的过滤机制看成if….else…if….语句的话,那么这种机制相当于else语句,前面两种都失败了之后,就会用这个来处理了,这种机制用来处理未识别的Tag

从这里不难看出,NFC的三重过滤机制,如果都不能匹配Tag,则什么都不做,这里有个图,实际上上篇结尾的时候我也提到过,只是没讲这么细

这里写图片描述

5.Android中使用NFC

这里指定一个实例

这里写图片描述

Tag要调用的一个activity,而且指定机制和数据类型

6.NFC 权限

 <uses-permission android:name="android.permission.NFC" />

7.最小支持SDK

ndroid:minSdkVersion="14"

8.限制安装的设备

<uses-feature
        android:name="android.hardware.nfc"
        android:required="true" />

当我们了解了这些基本的知识之后,我们就可以编写NFC的软件了,准备一部有NFC功能的手机,然后等待我们的下一篇

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章