2016-12-01 70 views
0

在我的應用程序中,我正在向NFC芯片寫入大量測量數據。由於測量次數不同,我無法定義NDEF消息的確切長度,並且在NFC讀取之前寫入有效負載長度的功能會對應用程序實際不適用。如何爲可變長度有效載荷格式化NDEF消息?

我想要做的是將NDEF消息的大小設置爲最大可用內存並簡單地寫入空閒空間。但是,在使用恩智浦NFC掃描儀時,出現內存不是NDEF格式的錯誤。誰能告訴我我做錯了什麼?

我目前的理解是:0x03定義ndef格式,0xFF標誌3字節長度格式,0x373是可用長度,0xC5標識單個塊的ME和MB,然後0x00爲類型長度和前兩個有效負載字節,最後 - 0x03和0x6D定義了0x36D淨荷長度。

初始化後的內存(開始和結束),可以看到下面: enter image description here enter image description here

+1

如何創建和寫入NDEF消息?您是否使用Android內置的方法,或者您自己的方法? – corvairjo

回答

0

你應該知道有效載荷的在當時的大小寫郵件。可以手工編寫NDEF,但是您需要在消息中包含每個記錄的TNF,類型和有效負載。

我推薦使用NdefRecordNdefMessage來編碼有效負載並創建消息。如果在稍後的日期您有不同的有效載荷和不同的大小,請創建一條新消息並將其寫入標籤。當您向標籤寫入消息時,它會覆蓋以前的消息。

0

使用Android Ndef.getMaxSize()方法確定可用的最大大小。然而,這實際上需要編寫虛擬數據。

更好的方法是隻寫NDEF標題,然後在更多數據進來時修改它。如果是這樣,你應該注意到NDEF消息iself在實際打開時被包裝在一個簡單的容器樣式格式中標籤。所以你必須不止一次地更新長度。

參見示例NFCTools

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 –

相關問題