使用Android书写时NFC标签上的数据表示

问题描述 投票:0回答:1

MIFARE Classic 1K存储卡有多个扇区来存储数据,所以我想知道在将NDEF数据写入Android中的标签时,如何将数据分配并存储到MIFARE Classic 1k的扇区中,而不是以下命令:

Ndef ndef = Ndef.get(tag);
ndef.writeNdefMessage(message);
android nfc rfid mifare ndef
1个回答
2
投票

由于MIFARE Classic不是标准的NFC标签,因此没有标准的方法在这些卡上存储NDEF格式的数据。但是,恩智浦提供了两个数据表,解释了NXP针对MIFARE Classic标签的专有NDEF映射:

这些数据表中描述的映射广泛用于能够在MIFARE Classic上读取/存储NDEF消息的设备,并且还用于具有恩智浦NFC芯片组的Android设备。

NDEF映射的基本原则是:

  1. 创建一个MIFARE应用程序目录(在块0中(对于4K卡,为16),可以使用密钥A = 0xA0A1A2A3A4A5读取。
  2. 在MAD中,将您希望能够存储NDEF数据的所有扇区标记为属于应用程序0xE103。
  3. 必须使用密钥A 0xD3F7D3F7D3F7读取所有NDEF扇区,并且必须将其GPB设置为0x40(如果允许读/写访问)或0x43(如果仅允许读取)。
  4. 所有NDEF扇区的块0-2代表TLV结构的存储(类似于NFC论坛兼容的NFC标签上的那些)。
  5. 用于存储NDEF消息的TLV结构具有0x03的标记,因此NDEF消息将嵌入为<0x03> <LEN (1 Byte)> <NDEF MESSAGE>(或<0x03> <0xFF> <LEN (2 Bytes)> <NDEF MESSAGE>
  6. 最后一个TLV结构后跟一个终结符TLV,一个字节0xFE
© www.soinside.com 2019 - 2024. All rights reserved.