我正在尝试在 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 发送图像的示例,但没有找到。有什么建议吗?