是否可以在 NfcV (ISO 15693) 标签上将数据写入内存中的特定块?例如,将数据写入块#5 或任何特定的块#。
我是 NFC 技术的新手。我正在创建一个应用程序来读/写 NfcV (ISO 15693) 标签。我已经成功创建了阅读部分,但问题在于写作部分。当我想将一些文本数据写入标签时,它从块# 2 开始,并且每次都执行相同的过程。我进行了很多搜索,但找不到将数据写入特定块的任何解决方案。
确切的细节取决于标签内的 ISO 15693 兼容芯片。ISO 15693-3 标准列出了不同的写入命令。对这些的支持都是可选的,因此您的标签可能支持其中的一个或多个,甚至使用专有命令来写入数据。我建议查看芯片的数据表和/或获取 ISO 标准以找出正确的命令是什么。
一旦您知道正确的命令是什么,您就可以简单地将字节数组中的命令字节传递给NfcV.transceive()
方法。(通常命令字节由一个标志字节组成,接着是一个写命令字节、一个或多个块字节和要写入的数据字节。)
尝试了以下方法:获取“标签丢失”异常:
nfc.connect();
byte[] arrByt = new byte[7];
arrByt[0] = 0x40;
arrByt[1] = 0x21;
arrByt[2] = 0x06;
arrByt[3] = 0x00;
arrByt[4] = 0x00;
arrByt[5] = 0x00;
arrByt[6] = 0x00;
byte[] response = nfc.transceive(arrByt);
我猜android框架不能很好地处理来自ISO15693标签的响应。我一直在玩 HF-I 标签。很少有命令可以完美运行,对于少数其他命令,NFC 堆栈会引发 TAG Lost 异常。