Try the following
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
File f = new File(picturePath);
Uri photoUri = Uri.fromFile(f);
insted of this replace the following.
Bitmap bitmap = ((BitmapDrawable) image.getDrawable())
.getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, baos);
byte[] b = baos.toByteArray();
and your array list adding code should be.
ops.add(ContentProviderOperation
.newUpdate(
ContactsContract.Data.CONTENT_URI)
.withSelection(
ContactsContract.Data.CONTACT_ID
+ " = ? AND "
+ ContactsContract.Data.MIMETYPE
+ " = ?",
new String[] {
contactid,
ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE })
.withValue(Photo.DATA15, b).build());
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…