【发布时间】:2014-10-28 17:34:42
【问题描述】:
我正在尝试通过联系人 ID 更新我的联系人图像,但是当我在三星 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();
}
}
【问题讨论】:
-
检查 s3 设备中的 catch 部分。
-
我的 s3 的 logcat 中没有错误
-
如果需要更多信息,请告诉我。我整天都被困在这上面!
标签: java android android-contacts