NDEF记录和vCard数据

时间:2012-10-13 18:10:23

标签: android nfc ndef

我正在尝试使用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记录吗?我怎么指定它们?

感谢 Domnic

1 个答案:

答案 0 :(得分:0)

writeNdefMessage应该为您处理所有分裂和写作。正如“NFC Guy”指出的那样,Mifare UL仅处理大约64字节的数据。对于Mifare1K,请确保它是未格式化的卡,并且以前的任何应用程序都不会阻止块和扇区。此外,您可以通过getMaxSize()功能找到最大可用尺寸。