我正在尝试通过它的联系人ID更新我的联系人图片,但是当我在Samsung S3上测试代码时,它执行正常但未对设备进行任何更改。在我的Nexus 4上它运行得很好,有人知道发生了什么。这是我的代码:
public void setContactImage(Bitmap img, String contactUriId, String rawID) {
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
try {
Bitmap bitmap = scaleDownBitmap(img, 500, getApplicationContext());
ByteArrayOutputStream image = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, image);
ContentProviderOperation.Builder contentOp = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
contentOp.withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "=?", new String[]{String.valueOf(contactUriId), ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE});
contentOp.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, image.toByteArray());
ops.add(contentOp.build());
} catch (Exception e) {
e.printStackTrace();
}
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
e.printStackTrace();
}
}
凹凸
答案 0 :(得分:0)
我认为您最好将照片写入原始联系人显示照片并将其标记为主要和超级主要照片。
将数据行标记为IS_PRIMARY和IS_SUPER_PRIMARY
检查列下的PHOTO_ID,了解如何为联系人选择照片