Ndef タグに画像を書き込もうとしていますが、現在は書き込めますが、マーケット アプリケーションで読み込もうとすると、テキスト メッセージのように扱われます。ここに画像を書く私のコードがあります:
Bitmap mBitmap = Bitmap.createScaledBitmap(mPhoto, 100, 100, true);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
NdefRecord picRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA, "image/png".getBytes(), null, byteArray);
String informations = "name: "+name + "\ntitle: " + title + "\naddress: "+ address + "\ncity: "+ city + "\nphone: "+ phone + "\nmail: "+mail;
NdefRecord textRecord = createTextRecord(informations);
NdefMessage message = new NdefMessage(new NdefRecord[]{picRecord, textRecord});
私もこの方法で画像を書いてみました:
NdefMessage msg = new NdefMessage(new NdefRecord[] {createMimeRecord("image/png", byteArray), textRecord});
メソッド createMimeRecord で:
public NdefRecord createMimeRecord(String mimeType, byte[]payload) {
byte[] mimeBytes = mimeType.getBytes(Charset.forName("USASCII"));
NdefRecord mimeRecord = new
NdefRecord(NdefRecord.TNF_MIME_MEDIA,
mimeBytes, new byte[0], payload);
return mimeRecord;
}
「TagInfo」などのアプリケーションで画像を読み取ろうとしたときに得られる結果は次のとおりです。
テキストメッセージはよく書かれており、普通に読むことができます。「createMime(String mime type, byte[] data)」を使用しようとしましたが、このメソッドは「未定義」のようです。ビットマップ画像を Jpeg 形式で圧縮しようとしましたが、同じ結果が得られました。 NdefMessages 経由で画像を送信する例を見つけましたが、見つかりませんでした。