遇到了同样的问题。我通过发送 TAG 3 属性块然后发送 NDEF 消息解决了这个问题。
如何构造属性块查看http://apps4android.org/nfc-specifications/NFCForum-TS-Type-3-Tag_1.1.pdf#page=23&zoom=100,117,344
关于 NDEF 消息,它需要没有 TLV 块包装器。
NdefRecord[] records = {
createTextRecord("en", value)
};
NdefMessage message = new NdefMessage(records);
byte[] ndefMessage = message.toByteArray();
StringBuilder hexMessage = new StringBuilder();
for (byte b : ndefMessage) {
hexMessage.append(String.format("%02X", b));
}
对于属性块:
byte[] type3AttributeBlock = {
(byte) 0x10, // version
(byte) numberOfBlocks[3], // number of blocks
(byte) numberOfBlocks[3], // blocks to update
(byte) 0x00, // H blocks available
(byte) 0x09, // L block available
(byte) 0x00, // byte 5 unused
(byte) 0x00, // byte 6 unused
(byte) 0x00, // byte 7 unused
(byte) 0x00, // byte 8 unused
(byte) 0x00, // writeF (00: finished)
(byte) 0x00, // RW flag (00: read only)
(byte) messageLengthBytes[1], // ln upper
(byte) messageLengthBytes[2], // ln middle
(byte) messageLengthBytes[3], // ln lower
(byte) 0x00, // H checksum
(byte) 0x00, // L checksum
};
byte[] checkSum = calculateCheckSum(type3AttributeBlock, 14);
type3AttributeBlock[14] = checkSum[2];
type3AttributeBlock[15] = checkSum[3];
然后将它们组合在一起并通过控制命令发送给阅读器。