当前位置: 首页 > 知识库问答 >
问题:

NDEF记录和vCard数据

秦阳旭
2023-03-14

我正在尝试使用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个答案

殳智志
2023-03-14

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

 类似资料:
  • 我已经开发了2个Android应用程序。第一个,写入NFC标签,第二个读取我写的内容。 因此,对于*第一个应用程序(WriteNFC):我正在向标记中写入一条NDEF消息,该消息涉及两条NDEF记录:第一条记录是“文本”类型,第二条是“URL”类型。 第二个应用程序(ReadNFC):我扫描标签,以便读取NDEF消息,并显示它,但不是完全显示。我只在屏幕上显示第二条记录(URL)。我想做的是,当用

  • 我写了一个应用程序,可以在NFC标签上读写ndef消息。我的应用程序可以在NDEF消息中读取和写入两条NDEF记录。但当我展示一个在NDEF消息中只有一条NDEF记录的标签时,应用程序崩溃了。我知道背后的原因。我也知道如何解决它,但要解决它,我需要知道如何获得NDEF消息中的记录数?

  • 我试着给NFC NTAG 213芯片写一条NDEF短信。为此我使用了nfcpy库。现在的问题是,我想在芯片上锁定一个特定的NDEF文本记录,并想在以后修改或添加不同的记录。 通常,您只能使用nfcpy库锁定整个芯片。我考虑只锁定为我要锁定的记录编写的页面。当我只锁定存储数据的页面时,我无法将任何其他NDEF记录写入芯片。 有没有办法创建偏移量,或者有没有专门的填充机制?还是一个订单中只能有几个ND

  • 如何将NDEF消息写入NFC标记?我必须更改清单文件吗?到目前为止,我有生成NDEF消息的代码: 如何发现标签?有人能帮我吗?

  • 我正在做一个NFC应用程序。为了启动我的应用程序,我使用了一个NDEF标签,里面有一条AAR NDEF记录。 这很好。但是现在我想直接用应用程序读取标签内容。我该怎么做? (当我从手机上取下标签并再次触摸它时,它已经起作用了,但我想取消这一步。) 舱单: 我只想让NDEF_发现我的意图。但我总是有行动。主要/类别。我的调试器的启动意图。 任何帮助都将不胜感激。我是基于这个做我的工作的: Andro

  • 假设我有一个输入文件,在HDFS中为这个文件创建了三个块。假设我有三个数据节点,每个数据节点存储一个块。如果我有3个输入拆分,则3个映射器将并行运行,以处理各自数据节点的本地数据。每个映射器使用输入格式和记录读取器以键值对的形式获取输入。此场景使用TextInputFormat,其中记录是来自文件的完整文本行。 这里的问题是,如果在第一个块的末尾有记录中断,会发生什么。 1)Hadoop如何读取此