我正試圖在Ndef標籤上編寫圖像,目前,我可以編寫它,但是當我嘗試使用任何市場應用程序閱讀它時,它們將它視爲文本消息。這裏是我的代碼寫的一塊圖像:使用NdefMessage書寫圖像
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});
我也tryed書面方式的圖像是這樣的:
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發送圖像的例子,但沒有找到任何建議?
就我所知,使用NFC傳輸圖像並不常見。它具有較慢的傳輸速度和很低的範圍。而分辨率更高的圖像相當大。如果你想顯示圖像,創建一個能夠顯示通過nfc接收的圖像的應用程序? – damian 2013-04-11 09:47:26
我想要做的是通過NFC標籤存儲和讀取名片的應用程序。我不想用另一個應用程序來顯示它,實際上我希望任何閱讀NdefMessaged的Nfc應用程序都能夠顯示我的圖像。 – Jinbonka 2013-04-11 09:49:49