0
문제 : 카메라에서 찍은 사진으로 연락처의 미리보기 이미지를 업데이트 할 수 없습니다. 환경 : 에뮬레이터, api19업데이트 전화 번호부 미리보기 이미지
내 코드 :
String where = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
ArrayList<android.content.ContentProviderOperation> ops = new ArrayList<android.content.ContentProviderOperation>();
String[] photoParams = new String[] { String.valueOf(contact.getPhoneContactId()),
ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE };
Bitmap bitmap = MediaStore.Images.Media.getBitmap(contentResolver, Uri.parse(contact.getPhoto()));
ByteArrayOutputStream image = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG , 100, image);
ops.add(android.content.ContentProviderOperation
.newUpdate(android.provider.ContactsContract.Data.CONTENT_URI).withSelection(where, photoParams)
.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, image.toByteArray()).build());
contentResolver.applyBatch(ContactsContract.AUTHORITY, ops);
연락 썸네일이 작동하는 이유에 어떤 아이디어 감사합니다 기본 연락처 응용 프로그램에서 표시되지 않으며,
ContentResolver cr = getActivity().getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
Uri imageUri = null;
if (cur.getString(cur.getColumnIndex(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI)) != null)
imageUri = Uri.parse(cur.getString(cur
.getColumnIndex(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI)));
InputStream is = null;
try {
if (imageUri != null)
is = getActivity().getContentResolver().openInputStream(imageUri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
를 통해 프로그래밍 끌어 둘 (또는 오히려 작동하지 않는다).