安卓NFC扫描时间

5
我正在开发与Android和ISO14443B标签有关的技术,但是我目前遇到一个无法解决的问题。希望有人能够提供提示。
当手机的NFC设置开启时,它会发送REQA和REQB命令以发现是否存在任何标签。问题在于,默认情况下这是每2秒执行一次,并且我想将其时间修改为更短。
我发现大多数应用程序都保持此扫描周期,但还有一些应用程序(例如NXP的TagInfo)将其缩短至250毫秒。
在所有可用的Android NFC信息中,我没有找到有关标签扫描时间的任何信息。
有人知道这个扫描时间吗?如何修改它?
先谢谢了。 Jon

This? - vlp
谢谢。我想关键是使用nfcAdapter.enableReaderMode()而不是nfcAdapter.enableForegroundDispatch(),并更改EXTRA_READER_PRESENCE_CHECK_DELAY选项。 - jmunoa
这个有用吗?你能发一下你使用的具体代码吗? - eecharlie
1个回答

4
通过在LG Spirit上使用NXP的NFC开发套件中的场探测器PCB进行一些实验,我发现以下内容,所有这些都没有任何NFC标签被询问:
  • 无论我使用什么模式和设置,NFC轮询(假定对应于检测到的RF场中的峰值)的周期约为205毫秒
  • 使用nfcAdapter.enableForegroundDispatch(),常规轮询事件只有20微秒长,但会在不规则的时间间隔内出现更长的轮询事件(意味着NFC场保持充电)
  • 使用nfcAdapter.enableReaderMode(),场上时间会根据启用的信令类型而变化。当所有信令类型都启用时,场被激活了125毫秒 - 是的,超过50%的时间NFC场被打开!而例如仅启用NFC-A时,它只被激活了2.2毫秒
  • NfcAdapter.EXTRA_READER_PRESENCE_CHECK_DELAY设置似乎对NFC轮询间隔没有任何影响。我认为此设置仅适用于部分连接序列已发生时,并且为什么它用作协议错误修复。

这是我的结论和建议: 我认为“默认”的分派模式允许操作系统通过最小化NFC场的打开时间来进行巧妙的功率优化,如果有东西与NFC场交互,则响应。由于这种NFC扫描模式在手机屏幕解锁时随时启用,因此必须优先考虑功率优化。

分派模式的权衡可能是,能量收集(被动)标签需要更接近手机天线才能启动并进行交互。

相比之下,读取器模式允许您强制将NFC场保持一定百分比的时间,尽管似乎无法调整轮询周期。您还只能间接调整场上时间的百分比,这可能会产生对被动标签的连接时间产生任何微小改进或不会产生任何改进。

可能有一份详细的最佳实践白皮书。我的建议是,如果您想要更快的被动标签读取,请使用读取器模式并仅启用所需的信令类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接