Search code examples
androidcontactsandroid-contactsgoogle-contacts-apicontactscontract

Update existing contact with image in Android


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());

Solution

  • 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.