すべての連絡先のリストが表示されるコードを使用しています。リストから連絡先を選択すると、連絡先の詳細が表示され、.vcf ファイル (適切な vcard 形式) に保存され、正常に動作します。写真もある連絡先を選択すると、imageViewに写真が表示されますが、vcfファイルに写真を書き込む方法がわかりません。私はこれらの行を使用しました、
Uri photoUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,Integer.parseInt(item));
Bitmap photoBitmap;
ContentResolver cr = getContentResolver();
InputStream is = ContactsContract.Contacts.openContactPhotoInputStream(cr, photoUri);
photoBitmap = BitmapFactory.decodeStream(is);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photoBitmap.compress(CompressFormat.JPEG, 100 , bos);
byte[] bitmapdata = bos.toByteArray();
imageEncoded = Base64.encodeToString(bitmapdata,Base64.DEFAULT);
String content = "BEGIN:VCARD\nVERSION:3.0\nCLASS:PUBLIC\nPRODID:-//class_vcard from TroyWolf.com//NONSGML Version 1//EN\nFN:"+contactName+"\nTEL;TYPE=cell,voice:"+number+"\nPHOTO;TYPE=JPEG;ENCODING=BASE64:"+imageEncoded+"\nTZ:+0000\nEND:VCARD";
しかし、連絡先の読み取り中にエラーが発生します (「予期しない理由で vCard の解析に失敗しました。無効な行:」) 誰でも問題を解決するのを手伝ってくれます!