Я пытаюсь записать изображение в тег 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, данные byte []), но этот метод кажется «неопределенным». Я пытался сжать растровое изображение в формате Jpeg с тем же результатом. Также я пытался найти примеры отправки изображений через NdefMessages, но не нашел ни одного предложения?