【问题标题】:Invisible Ndef message不可见的 Ndef 消息
【发布时间】:2013-03-26 15:44:57
【问题描述】:

我正在为 NFC 设备实现一个 Android 应用程序。我在两个不同的 Android 设备上使用 Ndef、NfcV 和 NdefFormatable 标签:三星 Galaxy SII plus 和三星 Galaxy SII,每个都运行 android 版本 4.1.2。 SII plus可以看到标签,读写没有问题,但是SIII看不到Ndef技术,只能看到NfcV技术。知道为什么吗?无论标签是否包含实际的 NDEF 消息,任何已上市的应用程序都会出现此问题。

【问题讨论】:

  • 能用TagInfo之类的app确定标签中的芯片吗?这可能会为正在发生的事情提供线索。
  • 标签信息显示射频技术的类型 V,标签类型 EM4x3x,目标技术类别:NfcV 和 Ndef。 NDEF 标记的类型未知。
  • 差异似乎与我在 Galaxy Nexus 和 Nexus 4 手机上观察到的相似。 Nexus 4 包含更新的 NFC 软件堆栈,支持不同类型 NfcV 标签上的 NDEF,而 Galaxy Nexus 仅支持 ICODE NfcV 标签。 Galaxy S3 具有与 Galaxy Nexus 相同的 NFC 软件堆栈。看起来 S2+ 和 Nexus 4 是一样的(这很有意义,因为这些设备出现在市场上的日期)。
  • 我明白了,是否存在针对不同设备的不同软件堆栈的列表?

标签: android tags nfc ndef iso-15693


【解决方案1】:

NfcV 标签不是官方的 NFC 论坛标签。因此,没有标准化的方式如何将 NDEF 消息存储在标签上。也不是所有的 NfcV 标签都以类似的方式工作。如果要低级读取或写入标签,则必须根据特定标签向标签发送不同的命令。不同标签之间的内存架构也不同。

在实践中,NFC 通信库通过列出一些常见的 NfcV 标签以及如何读取/写入它们的说明来处理该问题。此列表因手机和安卓版本而异。

这种不兼容性不会在短期内消失。 NfcV 可能成为 NFC 论坛标准的一部分,但现在这对您没有帮助。有两种方法可以解决这个问题:

  1. 如果您需要能够在所有 NFC 设备之间可靠交换数据的标签类型,请不要使用 NfcV。 NFC Forum Type1 到 Type4 就是为此而生的。甚至不保证支持 NfcV 读取/写入功能。

  2. 如果你因为项目原因绑定了这个特定的NFC标签,你可以忽略内置的NDEF读取代码,自己动手。为此,您需要标签数据表并使用 tag.transceive 发送原始命令。这需要更多的工作,但并不是那么难。

【讨论】:

  • 你的答案,你知道是否存在这样的手机列表和支持的库吗?
  • 现在 Nexus4 正在为 NFC-V 标签上的 NDEF 存储提供支持
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多