繁体   English   中英

Android:将多个NDEF消息放在一个NFC标签中?

[英]Android: putting multiple NDEF messages in one NFC tag?

我正在尝试创建一个NFC标签,它将触发两个单独的操作:

  • 打开蓝牙连接
  • 启动应用程序(或去游戏商店)

我已经使用nfc-eclipse-plugin来创建包含两个合适记录的消息,但是,当写入标记时,它总是只触发第一个动作。 两者都是单独工作,但第二个总是被忽略。

我知道一个NFC标签上2个NDEF消息/记录的答案--Android说你不能在标签上有两个单独的消息,只有消息中的多个记录,但是从查看包裹NDEF的TLV格式开始似乎没有什么可以阻止第二个NDEF消息出现在最后的0xFE标记字节之前?

有没有人有任何其他想法如何实现我在一个标签上有两个单独的操作的目标?

你是对的,Android不支持两条NDEF消息。 但是你有一条NDEF消息包含你的两个动作吗? 我的意思是,你的有效载荷可能是这样的:

"action a,action b" 

并将其留给您的应用程序来解析该有效负载并确定它需要做什么?

所以只是把它包装起来:我已经将包含两个单独的NDEF 消息的标签混合在一起,而不是一个包含两个记录的消息。 在标记上的字节级别,如下所示:

0x03 <length1> <message1> ... 0x03 <length2> <message2> ... 0xFE

NFC Type 2规范明确允许这样做。 但是,Android会默认忽略第一条消息之外的任何内容。

是。 Android不支持多个NDEF消息。 它只允许一个。 您可以将多个NDEF记录添加到单个NDEF消息中。

NdefRecord text1 = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
                                  message1.getBytes(),
                                  new byte[]{},
                                  message1.getBytes());
NdefRecord text2 = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
                                  message2.getBytes(),
                                  new byte[]{},
                                  message2.getBytes());
NdefMessage mNdefMessage = new NdefMessage(new NdefRecord[]{text1,text2});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM