0

Android NFC API を使用して NDEF レコードに vcard データを書き込もうとしています。長さが 46 バイト未満の 1 つの URL またはいくつかのテキストまたは電話番号を書き込むことができます。しかし、この長さ (150 バイト) を超える vCard データを書き込もうとすると、このデータのレコード長が短いため、カードに格納できません。このレコードを複数のブロックまたはセクターにまたがって書き込むことになっています。

私は次のようなことをしています、

byte[] vCardDataBytes = vCardData.getBytes(Charset.forName("UTF-8"));
byte[] vCardPayload = new byte[vCardDataBytes.length+1];
System.arraycopy(vCardDataBytes, 0, vCardPayload, 1, vCardDataBytes.length);
// vCardDataBytes[0] = (byte)0x00;
ndefRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA,"text/x-vcard".getBytes(),new byte[] {}, vCardPayload);

Androidで複数のセクターにまたがるndefレコードを書き込む方法をコードで教えてもらえますか?. おそらくそれらをどのように指定しますか?

ありがとうドムニック

4

1 に答える 1

0

writeNdefMessage は、すべての分割と書き込みを処理する必要があります。「NFC Guy」が指摘したように、Mifare UL は約 64 バイトのデータしか処理しません。Mifare1K の場合、フォーマットされていないカードであり、ブロックとセクターが以前のアプリケーションによってブロックされていないことを確認してください。また、 getMaxSize()関数で使用可能な最大サイズを見つけることができます。

于 2012-10-22T09:01:02.393 に答える