0
我正在閱讀設備中的聯繫人信息並使用ez-vcard0.9.5在vcf文件中進行書寫。當我恢復文件時,它不會恢復聯繫人照片。無法在vcf中使用ez-vcard0.9.5在android中編寫聯繫人照片
予讀取使用下面的代碼從器件接觸的照片:
public static byte[] getContactPictureByte(Context context,ContentResolver cr, Cursor cur, String id) throws IOException {
Bitmap photo = null;
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(cr, ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(id)));
byte[] b = null;
if (inputStream != null) {
photo = BitmapFactory.decodeStream(inputStream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 100, baos);
b = baos.toByteArray();
Log.v("photo","b.lemgth: " + b.length);
inputStream.close();
}
return b;
}
,然後加入返回的字節數組VCF。
pictureByte = ContactUtils.getContactPictureByte(context,cr, cur, id);
vcard.addPhoto(new Photo(pictureByte, ImageType.JPEG));
String vcardText = Ezvcard.write(vcard).version(VCardVersion.V3_0).go();
當我打開使用記事本的VCF檔案,我發現了「照片」標籤的值太長,它持續到文件的末尾,而VCF格式丟失它的結束標記和其它信息。 照片標籤開始這樣
PHOTO; TYPE = PNG;編碼= B:/ 9J/4AAQSk ............ [直到結束]
誰能好心給我解決方案?
謝謝。