如何使用Android从NFC标签中检测制造商



我正在尝试检测NFC标签的制造商名称。我在这里找到了制造商代码。但使用这些ID,我只能检测到Mifare Ultralight C标签。Ultralight C标签ID的第一个字节表示制造商代码。但其他标记不包含此属性。此应用程序可以检测IC制造商。是否可以检测其他NFC标签的制造商?

当然没有一种包罗万象的方法。NFC标签的指纹(猜测制造商甚至确切的标签类型(相当困难,您可能需要获得您想要检测的不同标签类型的各种数据表/用户手册。即便如此,大多数标签也不会只是告诉你"我是Z开发的XY"。在某些应用程序用例中,甚至认为不希望(通常是出于不明原因的安全考虑(透露制造商或产品代码。

然而,对于某些标签类型,有成熟的机制来获得制造商标识符:

  • 具有7字节UID的NfcA标签(通过Tag.getId()获取(将制造商的ISO 7816-6注册芯片制造商代码(参见您已经找到的列表、更新的列表或JTC1/SC17文档库(编码为该UID的第一个字节。例如,STMicroelectronics的0x02、NXP的0x04、Infineon的0x05等。

  • NfcV标签具有8字节UID,其中制造商的ISO 7816-6注册芯片制造商代码(与7字节-UID NfcA标签相同(被编码为UID的第二字节(注意,NfcV的不同字节顺序导致该字节是通过Tag.getId()获得的倒数第二个字节(。

  • NfcF标签通常有一个来自索尼的射频前端(至少我不知道有其他制造商(。不过,该前端可能会被其他制造商集成到产品中。索尼提供了一系列数据表/用户手册,为您提供足够的信息来区分不同的FeliCa标签。

  • 一些IsoDep标签(特别是那些遵循GlobalPlatform规范的智能卡(可能会通过其卡生产生命周期数据(CPLC(揭示制造商信息。请参阅Nikolay的博客文章和GP规范,了解如何从典型的GP兼容卡中获得这些信息。请参阅CPLC.java了解如何解释该信息。

相关内容

  • 没有找到相关文章

最新更新