3

2 つの別々のアクションをトリガーする NFC タグを作成しようとしています。

  • Bluetooth接続を開く
  • アプリの起動 (または Play ストアへのアクセス)

nfc-eclipse-plugin を使用して、2 つの適切なレコードを含むメッセージを作成しましたが、タグに書き込まれると、常に最初のアクションのみがトリガーされます。どちらも個別に機能しますが、2 番目のものは常に無視されます。

1 つの NFC タグに 2 つの NDEF メッセージ/レコードがあることはわかっています。最後の 0xFE マーカー バイトの前に 2 番目の NDEF メッセージが表示されるのを実際に防止するものはないように思われますか?

1 つのタグで 2 つの別々のアクションを実行するという私の目標を達成する方法について、他のアイデアはありますか?

4

3 に答える 3

3

はい。Android は、複数の NDEF メッセージをサポートしていません。許可されるのは 1 つだけです。また、複数の NDEF レコードを 1 つの 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});
于 2015-04-14T10:49:03.570 に答える
3

まとめとして、2 つのレコードを持つ 1 つのメッセージではなく、2 つの別個の NDEFメッセージを含むタグをハックしました。タグの直接のバイト レベルでは、次のようになります。

0x03 <length1> <message1> ... 0x03 <length2> <message2> ... 0xFE

NFC Type 2 仕様では、これが明示的に許可されています。ただし、疑わしいように、Android は最初のメッセージ以外は黙って無視します。

于 2013-07-06T19:47:41.667 に答える