ACR122U NFC リーダーを使用して、NDEF メッセージを作成し、Windows フォーム アプリケーション (C# で記述) の NFC タグに書き込もうとしています。
Andreas Jakl のNDEF ライブラリを使用して、NDEF メッセージの raw バイトを作成しました。これは C# コードです。
var spRecord = new NdefTextRecord {
Text = "1",
LanguageCode = "en"
};
var msg = new NdefMessage { spRecord };
string hex = BitConverter.ToString(msg.ToByteArray());
resultBox.Text = hex.Replace('-',' ');
私が得る出力はD1 01 04 54 02 65 6E 31 (16 進数) です。
次に、次の APDU コマンドを使用して、ブロック #5 から始まる NFC タグ (MIFARE Ultralight) にこのデータを書き込みます。
CL INS P1 P2 Lc DATA IN
FF D6 00 05 04 D1 01 04 54
CL INS P1 P2 Lc DATA IN
FF D6 00 05 04 02 65 6E 31
しかし、Android でそのタグを読み込もうとすると、書き込まれた NDEF メッセージが認識されません。
NDEF メッセージを Android に認識させるにはどうすればよいですか?
解決策 (Michael Roland に感謝)
Android アプリを使用して NDEF タグを作成し、そのタグで生成した値と、上記の方法を使用して作成したタグを比較しました。違いは、最初は 0x03 0x08 でした。したがって、0x03 は必要な開始バイトであり、0x08 は NDEF メッセージの長さです。
FF D6 00 04 04 03 08 D1 01
FF D6 00 05 04 04 54 02 65
FF D6 00 06 04 6E 31 FE 00