我試圖找到一個可用於驗證NDEF消息的工具。正如在這裏發佈的許多帖子中所列出的那樣,在Android 4.1中,NDEF解析器已經變得比4.0.4或Android 2.3更嚴格,因此曾經工作的一些應用程序不再有效。但是,開發工具並沒有真正指定NDEF消息的錯誤,因此確定消息的哪一部分可能會被錯誤地格式化並不容易。驗證NDEF消息的工具?
是否有任何工具可以接收NDEF消息的字節流並確定該消息是否有效,如果沒有 - 消息有什麼問題?
我試圖找到一個可用於驗證NDEF消息的工具。正如在這裏發佈的許多帖子中所列出的那樣,在Android 4.1中,NDEF解析器已經變得比4.0.4或Android 2.3更嚴格,因此曾經工作的一些應用程序不再有效。但是,開發工具並沒有真正指定NDEF消息的錯誤,因此確定消息的哪一部分可能會被錯誤地格式化並不容易。驗證NDEF消息的工具?
是否有任何工具可以接收NDEF消息的字節流並確定該消息是否有效,如果沒有 - 消息有什麼問題?
Android 4.1和Android 4/3/2中的NFC/NDEF之間的主要區別在於,4.1中不能創建沒有記錄的消息。即下面的行會在運行時崩潰:
new NdefMessage(new NdefRecord[0]);
當我將NFC應用移植到4.1時,這是我必須做的唯一更改。
此外,創建具有空參數的ndef記錄在各種Android版本中處理方式不同。 – ThomasRS
通常,問題是跟蹤字節。由NFC標籤指示的NDEF消息長度比實際的NDEF消息本身長。 Android的早期版本在最後忽略了額外的字節。但是,Android 4.1中的新NDEF消息解析器將引發異常,導致NFC意圖中未報告NDEF消息。
檢測此類問題的工具確實有用。它需要對標籤進行低級讀取(使用標籤技術的transceive()
方法),因爲Android的自動NDEF檢測在這種情況下不起作用。不幸的是,這部分Android不是用Java實現的,所以你不能僅僅把源代碼放在一個應用程序中。
我在創建了以下Online NDEF Parser後,眼睛保齡球過多NDEF字節流。
它可以讓你粘貼一個字節流並解析它。如果它是一個有效的NDEF,它將解析它並顯示其記錄(也支持嵌套記錄),如果無效,它將突出顯示預期的錯誤字節,並將顯示一條錯誤消息並提供修復它的建議。
它是在NFC數據交換格式(NDEF)技術規範1.0
如果你有機會到4.0.4設備,你總是可以使用[這](https://play.google.com/基地store/apps/details?id = com.antares.nfc)將NDEF消息保存到文件系統,然後使用NdefMessage(byte [])4.1構造函數解析問題。 – ThomasRS