android NFC调度系统,无线近场通讯NFC标签调度系统

原标题:无线近场通讯NFC标签调度系统

NFC Intent发布系统

Intent发布系统也被称为标签调度系统,调度系统定义了三种类型的action,见下表:

81e68256c9805c6b052b068c200b00b8.png标签类型

所以标签的上报根据标签中数据的不同而采用不同的action,大致流程如下图:

77b43ad0af1966ea0ab919219f03a69e.png标签上报流程

1 、ACTION_NDEF_DISCOVERED

如果Application想过滤ACTION_NDEF_DISCOVERED的Intent,则其需要在你apk的清单文件AndroidManifest.xml中添加上intent-filter分过滤条件,一般的过滤条件设置如下:

35002a69427e95d571e384b3efd09fd2.png

过滤条件data下的内容根据Application感兴趣的标签而定,具体可参考《Professional NFC Application Development for Android.pdf》,这本书中做了比较详细的说明。

2 、ACTION_TECH_DISCOVERED

Application如果对ACTION_TECH_DISCOVERED的Intent感兴趣,则需要在apk的清单文件中加入如下格式的过滤条件:

c0a266938bc33851b486e33511ede2e9.png

在上面的基本格式中,meta-data中包含这样一条语句:android:resource="@xml/nfc_tech_list",这是一个XML的资源文件,该文件在过滤ACTION_TECH_DISCOVERED的Intent时是必须创建的。它指定了该apk支持的标签技术,只有你在XML中定义的标签技术是上报的Tag支持的标签技术的一个子集,这样你的Activity才能被系统过滤出来。

Nfc_tech_list是资源文件的文件名,可以根据自己的文件名而改动。但是文件的存放路径必须是 /res/xml/ 文件夹下,基本格式如下:

bf3ef6bba66930818289ce7c555a6b30.png

以上所列出的标签技术是当前标签支持的所有技术,Application可以根据自己的需要自由组合你的tech_list。也可以指定多个tech_list集合,每一个tech_list都认为是独立的,所以在匹配过程中,只要有一个tech_list匹配成功就认为该Activity符合ACTION_TECH_DISCOVERED的Intent过滤条件。多个tech_list集合的格式如下:

3fe021ea6735c721380a187bf29ee41c.png

3 、ACTION_TAG_DISCOVERED

应用如果想过滤ACTION_TAG_DISCOVERED的Intent,同样需要在清单文件中加入过滤条件,这样在其他apk没有过滤ACTION_NDEF_DISCOVERED和ACTION_TECH_DISCOVERED的Intent时,ACTION_TAG_DISCOVERED就会启动。配置格式如下:

9e2314d041d0e36f82c1e4632bcb6d27.png

三种不同的action的Intent都有了比较详细的说明,接下来让我们看下这部分在android系统标签上报中的时序图:

3bf753f7ab82055695d0d692dae7df70.png标签上报时序图

Activity被启动后一般会在onResume()中获取到Intent,并从中读取标签的Tag对象和NDEF数据,这样应用就可以基于获取到的数据进行NFC数据操作。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值