Я ищу способ программно обновить фотографию контакта с данным растровым изображением. Я делаю следующее, но ничего не происходит. Также не устанавливается изображение и не возникает ошибка.Android set contact фото с ContactsContract
Cursor cursor = provider.query(ContactsContract.RawContacts.CONTENT_URI,
new String[]{ContactsContract.RawContacts.CONTACT_ID, ContactsContract.RawContacts.ACCOUNT_TYPE},
ContactsContract.RawContacts.ACCOUNT_TYPE +"=?",
new String[]{accountType},
null);
// Only one entry
if(cursor.moveToFirst())
{
id = cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.CONTACT_ID));
}
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(CompressFormat.JPEG, 100, stream);
byte[] bytes = stream.toByteArray();
ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, Integer.parseInt(id))
.withValue(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE)
.withValue(Photo.PHOTO, bytes)
.build());
}
provider.applyBatch(ops);
Изображение загружаются из REST API, то, что, кажется, работает правильно, так как байты объекта на самом деле имеет размер загруженного изображения.