NFC NDEF消息格式:有效载荷大小(ISO 15693标头,NfcV)

“嘿兄弟,怎么了?”

我遇到了NDEF邮件格式的问题。

我通过NFC论坛了解了如何使用单个NDEF记录(文本RTD)构建带有负载的NDEF消息,因此我可以通过I2c对我的标签(M24LR16E)进行编程。

除此之外,我使用外部编写器对我的标签进行了编程,以获得格式良好的记录示例。

然后我使用完全相同的值通过I2C对我的标签进行编程,并且一切正常。 改变载荷字符给了我成功的证明=)

“但是你没有来这里告诉我们什么运转良好,不是吗?”

你是对的,知道我试图改变有效载荷的长度,并且我得到了麻烦。 只要我改变NDEF记录的PAYLOAD_LENGTH,它就不再被认为是一个。 我将PAYLOAD_LENGTH从10更改为5,所以它不是溢出配置字段的问题。

“好故事,给我看一些代码/配置”

这是我的记录配置:

  • “标题”(MB ME CF SR IL TNF):0xD1
  • PAYLOAD_LENGTH:0x0A
  • 类型长度:0x01
  • 类型:0x54
  • PAYLOAD:
  • 0x02; UTF-8,2字节语言代码
  • 0x65; Ë
  • 0x6E; ñ
  • 7其他无聊的字节
  • 另外,我注意到如果我在我的NDEF消息之前覆盖6个字节,那么NDEF消息不再被识别。 我不知道这个数据可能是什么,因为NFC规范不会谈论这个,也不是标签数据表。

    “你应该问一个问题......”

    呃,好吧...

  • 除了我应该改变的NDEF记录的PAYLOAD_LENGTH字段还有什么?
  • 什么是我的NDEF信息之前的基本数据?
  • 我的读者:Nexus 4与恩智浦的“TagInfo”应用程序


    不幸的是,你不会找到关于如何使用该标签在NFC论坛网站上存储NDEF消息的很多信息。 原因是目前ISO 15693标签没有Tag Type specifiction(尽管标准化正在进行中)。

    我假设标记的内存内容如下所示(包括您不明白的字节):

    E1 4x yy 00
    03 0E <YOUR NDEF MESSAGE> FE
    

    如果是这样的话,前4个字节是能力容器(由魔术字节0xE1和版本半字节0x4 )。 x应该是0x0表示(应用程序级!)读写访问。 yy应该是可用数据存储器(不包括容器容器)的整体大小除以8.到目前为止,您应该能够保留这些值...

    但是接下来是嵌入了NDEF消息的NDEF消息TLV结构: 0x03是指示NDEF消息的标记。 0x0E是长度字段。 所以这就是除了记录的有效载荷长度之外你需要改变的地方。 当涉及到这个长度的领域时,Android非常挑剔。 如果这与您的NDEF消息的确切长度不符,则大多数Android版本都会忽略该消息。 最后一个字节0xFE是(可选)终止符TLV。 这应该紧跟在标签上的最后一个数据字节之后,以告诉NDEF标签解析器停止解析。

    链接地址: http://www.djcxy.com/p/70145.html

    上一篇: NFC NDEF message formatting : payload size (ISO 15693 header, NfcV)

    下一篇: Is it possible to write 2 URIs to 1 NFC Tag?