0

我正在尝试使用 Android NFC API 在 NDEF 记录中写入 vcard 数据。我可以编写一个 URL 或一些长度小于 46 字节的文本或电话号码。但是,当我尝试写入超过此长度的 vCard 数据时(例如 150 个字节),我无法将它们存储在卡中,因为该数据的记录长度较短。我应该跨多个块或扇区编写此记录。

我正在做类似的事情,

byte[] vCardDataBytes = vCardData.getBytes(Charset.forName("UTF-8"));
byte[] vCardPayload = new byte[vCardDataBytes.length+1];
System.arraycopy(vCardDataBytes, 0, vCardPayload, 1, vCardDataBytes.length);
// vCardDataBytes[0] = (byte)0x00;
ndefRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA,"text/x-vcard".getBytes(),new byte[] {}, vCardPayload);

有人可以在一段代码中指出我如何在 Android 中跨多个扇区编写 ndef 记录吗?我该如何指定它们?

谢谢多尼克

4

1 回答 1

0

writeNdefMessage 应该为您处理所有的拆分和写入。正如“NFC Guy”所指出的,Mifare UL 只处理大约 64 字节的数据。对于 Mifare1K,请确保它是未格式化的卡,并且块和扇区未被任何以前的应用程序阻塞。此外,您可以通过getMaxSize()函数找到最大可用大小。

于 2012-10-22T09:01:02.393 回答