2016-12-01 15 views
0

私のアプリケーションでは、NFCチップにいくつかの測定値を書き込んでいます。測定値の数が変化するので、NDEFメッセージの正確な長さを定義したり、長さを数え、アプリケーションのNFC読み取りが実用的でない直前にペイロード長を書き込む関数を実装することはできません。可変長ペイロードのNDEFメッセージをフォーマットする方法は?

私がやったと思ったのは、NDEFメッセージのサイズを使用可能な最大メモリに設定し、単に空き領域に書き込むことでした。しかし、NXP NFCスキャナを使用している間、私のメモリはNDEFフォーマットではないというエラーが出ます。誰かが私が間違っていることを教えてもらえますか?

0x03はndef形式を定義します。0xFFフラグは3バイト長形式、0x373は使用可能な長さ、0xC5はシングルチャンクのMEとMB、0x00はタイプ長、最初の2つのペイロードバイトを表します。 - 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

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 –

関連する問題