Как обновить собственную контактную фотографию на андроиде?

Я работаю над одним примером приложения, чтобы вставлять, обновлять и удалять собственный контакт с Android. Я могу успешно вставить, обновить и удалить контакт. Но проблема в обновлении контактной фотографии. Ниже изображения – это наблюдение, где один и тот же контакт имеет две разные проблемы. Рисунок 1фигура 2

После обновления контакта первое изображение по-прежнему отображает старое изображение. Но где, когда я просматриваю все подробности, я могу просмотреть обновленное контактное изображение, как показано на втором изображении. Ниже приведен код для обновления контактного изображения.

mBitmap =getAllowedPhotoBitmap(photo); mBitmap = ThumbnailUtils.extractThumbnail(mBitmap, THUMBNAIL_SIZE, THUMBNAIL_SIZE); ByteArrayOutputStream stream = new ByteArrayOutputStream(); if(mBitmap!=null){ // If an image is selected successfully mBitmap.compress(Bitmap.CompressFormat.PNG ,100, stream); op = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI); op.withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "=?", new String[{String.valueOf(native_contactid), ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE}); op.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, stream.toByteArray()); ops.add(op.build()); } 

В чем проблема и где я ошибаюсь?

Вот приложение с открытым исходным кодом, которое делает это: https://github.com/heinrisch/Contact-Picture-Sync/blob/master/src/heinrisch/contact/picture/sync/ContactHandler.java

Этот файл поможет вам установить изображение для контакта с идентификатором контакта

https://github.com/heinrisch/Contact-Picture-Sync/blob/master/src/heinrisch/contact/picture/sync/ContactHandler.java

 void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { // Check for the request code, we might be usign multiple if (requestCode == PICK_CONTACT_REQUEST) { Uri contactUri = data.getData(); String[] projection = {Phone.CONTACT_ID,Phone.NUMBER,ContactsContract.Data.RAW_CONTACT_ID,ContactsContract.Data._ID }; Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null); cursor.moveToFirst(); int columcontactID = cursor.getColumnIndex(Phone.CONTACT_ID); String contactID = cursor.getString(columcontactID); Bitmap item = (imgBg.getVisibleRectangleBitmap()); setContactPicture(AtWallpaperDetails.this, contactID, item); } } } 
Intereting Posts
Как получить зарегистрированный адрес электронной почты пользователя с помощью Graph Request в Facebook Android sdk 4.0 Переход 3D-куба в Android Вращение частиц libgdx Уведомление FCM push показывает значок белого квадрата вместо значка приложения, когда приложение находится в фоновом режиме Объединение html front-end и python «back-end» в мобильном приложении Android – Canvas Black при использовании Flood-Fill Как получить координаты от GPS в Android? Как установить цвет текста библиотеки закупок библиотеки для чего-то другого, кроме android: textColor? Как увеличить пространство между текстом и подчеркнуть в TextView Android? Символьная кодировка по умолчанию для Android Azure push notification hub – как обрабатывать форматы полезных данных для iOS и Android? Использование панели действий в качестве кнопки «вверх», операция home saveInstanceState всегда равна нулю Picasso: как отменить все запросы изображения, сделанные в адаптере Существует ли поддержка API для программных конференций в Android? Поддержка Android (cardView, RecyclerView) в старых версиях с целевым Kitkat