天天看点

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

真要说起来,nfc在android上,也是从api9才开始支持的,但是到了api14 google才对nfc大力开发,所以等到了api15的时候,nfc的传输速度就得到了很大的加强
如果你有支持nfc的手机,你打开后盖,你看看到一块薄薄的东西,这就是nfc标,标签的种类也是种类繁多,功能野人参参不齐,有的只能读写,有的却能上天,而在android sdk 中定义的nfc标准被称为ndef(数据交换格式)
android sdk中有三种ndef数据的操作

从nfc便签读取ndef格式的数据

向nfc标签写入ndef格式的数据

通过android beam技术将ndef数据发送到另一部nfc设备

上篇也简单的说了这个机制 不管原生的如何支持,就像android一样,依旧有一个独特的要求,比如我们存储的数据需要任意的,这就要我们自己定义数据,这也叫做非ndef数据,这些数据其实就是普通的字节流罢了
两个终端设备要想读写数据,会有个短暂配对的时间,数据接收端会根据具体的数据格式和标签类型调用相应的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,则什么都不做,这里有个图,实际上上篇结尾的时候我也提到过,只是没讲这么细
Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法
这里指定一个实例
Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法
tag要调用的一个activity,而且指定机制和数据类型
当我们了解了这些基本的知识之后,我们就可以编写nfc的软件了,准备一部有nfc功能的手机,然后等待我们的下一篇

继续阅读