我正在为 NFC 设备实现 Android 应用程序。我在两个不同的 Android 设备上使用 Ndef、NfcV 和 NdefFormatable 标签:三星 Galaxy SII plus 和三星 Galaxy SII,每个都运行 android 版本 4.1.2。SII plus可以看到标签,读写没有问题,但是SIII看不到Ndef技术,只能看到NfcV技术。知道为什么吗?无论标签是否具有实际的 NDEF 消息,任何已上市的应用程序都会出现此问题。
问问题
422 次
1 回答
1
NfcV 标签不是官方的 NFC 论坛标签。因此,没有标准化的方式如何将 NDEF 消息存储在标签上。也不是所有的 NfcV 标签都以类似的方式工作。如果要低级读取或写入标签,则必须根据特定标签向标签发送不同的命令。不同标签之间的内存架构也不同。
在实践中,NFC 通信库通过列出一些常见的 NfcV 标签以及如何读取/写入它们的说明来处理该问题。此列表在不同的手机和 android 版本之间有所不同。
这种不兼容不会在短期内消失。NfcV 可能成为 NFC 论坛标准的一部分,但现在这对您没有帮助。有两种方法可以处理这个问题:
如果您需要一种可以在所有 NFC 设备之间可靠交换数据的标签类型,请不要使用 NfcV。NFC Forum Type1 到 Type4 就是为此而生的。甚至不保证支持 NfcV 读/写功能。
如果你因为项目原因绑定了这个特定的NFC标签,你可以忽略内置的NDEF读取代码,自己做。为此,您需要标签数据表并使用 tag.transceive 发送原始命令。这需要更多的工作,但并不难。
于 2013-03-27T07:41:41.797 回答