Android NFC android开发教程

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 16:16 我要评论(0)

Android所支持的NFC操作有三种模式:

1.Reader/Writer Mode:允许NFC设备读写一个NFC Tag或者Sticker

2.P2P Mode:允许NFC设备与另外一台NFC设备交换数据,这种模式已经用于Android Beam中了

3.Card Emulation Mode:允许NFC设备自己作为一个NFC卡,作为一个拓展的NFC Reader。

使用NDEF数据的话主要有两种情况:

1.从一个NFC Tag中读取NDEF数据

2.发送一个NDEF数据到另外一台设备上,通过Android Beam的方式。

通过Tag Dispatch System,可以从NFC Tag中读取NDEF数据,当解析NFC Tag的时候,我们可以通过生命一个Intent-filter,来表明我们所感兴趣的特定的数据,并且Android会启动这个应用程序并且传递数据给它。

Android Beam特性允许一台设备push一个NDEF消息通过物理碰撞到另外一个设备上,而只要当手机处于解锁状态下时,Tag Dispatch System就会运行的,除非把NFC功能关掉了。

当Tag Dispatch System检测到了Tag碰撞的时候,就会启动最符合该Tag标准的Activity,由于设备发现搜索的NFC Tag会在一个很短的距离内,所以尽量只选择自己感兴趣的Tag进行处理,而不会导致让用户选择Activity。

以下为官网文档的原话:

Because devices scan NFC tags at a very short range, it is likely that making users manually select an activity would force them to move the device away from the tag and break the connection. You should develop your activity to only handle the NFC tags that your activity cares about to prevent the Activity Chooser from appearing.

为了让用户尽可能不通过Activity Chooser进行选择,Android 通过以下方式来定位最合适的Application:

1.解析一个NFC Tag并且parse出Data payload中能够被唯一标识的MIME Type以及URI来决定这个Tag。

2.将解析出来的MIME Type与URI以及Data payload放入一个Intent对象中。

3.基于这个Intent启动Activity。

一个NDEFMessage中可能会包含很多个NDEFRecord,Android也支持其他的不包含NDEF数据的Tag,通过android.nfc.tech包可以找到。而与这些对应的NFC Tag Technology要有数据交互的话,就需要自己实现与他们通信的协议栈与其通信,所以Android建议尽量使用NDEF数据格式,因为更易于开发以及Android手机的支持。

Working with these other types of tags involves writing your own protocol stack to communicate with the tags, so we recommend using NDEF when possible for ease of development and maximum support for Android-powered devices。

为了Parse出NDEF数据的URI和MIME Type,系统会读取第一个NdefRecord,而第一个NdefRecord属性为:

1.3-bit TNF(Type Name Format):

TNF_ABSOLUTE_URI:如果为此值的话,那么就说明有一个特定的URI。

TNF_EMPTY:返回到ACTION_TECH_DISCOVERED

TNF_EXTERNAL_TYPE:拓展的URI

TNF_MIME_MEDIA:基于此类型的MIME TYPE

TNF_UNCHANGED:返回到ACTION_TECH_DISCOVERED

TNF_UNKNOWN:返回到ACTION_TECH_DISCOVERED

TNF_WELL_KNOWN:已经有,但是需要比对RTD(Record Type Definition)来确定。

对于TNF_WELL_KNOW这种类型的TNF的话,就需要来比较RTD来确定MIME TYPE以及URI了。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...