I am able to update image in contact from my app and its visible in contacts but as soon as google sync occurs it deletes the image from contact.
My code:
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValue(ContactsContract.Data.RAW_CONTACT_ID, lRawContactId)
.withValue(ContactsContract.Data.IS_PRIMARY, 1)
.withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO,
getImageByteArray(bitmap))
.build());
That's probably because you only set the thumbnail of the photo. Please see my response in Changing contact's image to a large photo via PHOTO_FILE_ID in Android to see how you should add or update a contact photo.