[英]How to find NXP type of NFC Tag in flutter nfc_manager
我正在使用 Flutter nfc_manager 进行读取、写入和保护操作。
现在我需要找到类型。 例如,我需要知道扫描的标签是 NTAG213 还是 NTAG216。
使用 nfc_manager 检查的任何可能性。
没有标准方法可以准确识别 NFC 标签,有一些方法可用于帮助推断您正在处理的标签,但其中一些是特定于家庭的方法,用于识别它是标签系列的哪个成员。
由于这些方法是较低级别的访问类型,因此在 iOS 和 Android 上使用它们是不同的。
在底层,不同的标签技术有不同的方法来获取关于标签的更多细节。
从 Flutter 方面,您可以使用from
方法至少缩小您正在使用的标签技术。 如果标签的类型不正确,这个from
方法将返回null
。
然后例如,如果它是一个NfcA
标签硬件(如 NTAX21x 标签),不同的 NFC 标签系列通常会给出不同的低级ATQA
和SAK
响应(这些数据实际上用于解决一些标签技术,但不是全部,例如 Mifare , ETC)。 此ATQA
和SAK
响应在 Android 和 iOS 中以不同的方法提供
然后从标签的 UID 开始,第一个字节应该是制造商标识符,因此对于 NXP,所有 UID 都应该以04h
开头
然后是特定于标签系列的东西,例如对于 NTAX21x 系列,您可以transceive
或sendMiFareCommand
“GET_VERSION” 60h
命令以获取产品信息并根据数据表对其进行解码
但是知道确切的标签类型有什么用吗? ,你只是想知道你可以在上面存储多少数据吗?
因此,除了使用 NTAX21x“GET_VERSION”命令之外,还有更通用的方法是使用 NDEF size
方法来获取有关此标签可以存储多少数据的更有用的信息。 此 NDEF 大小应适用于符合 NFC 论坛标签标准之一的任何标签,例如 NTAX21x 案例中的类型 2。
(此外,任何类型 2 标签的大小都存储在功能容器中的第03h
页字节02
中,您可以向任何类型 2 标签transceive
或sendMiFareCommand
READ 03h
命令以获取此数据)
NXP 提供了一个名为TapLinx的库,它提供了简单的 API 来与 NXP 制造的标签进行交互。 如果你不想深入细节,你可以使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.