簡體   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