Android 更新联系人头像失败问题
来源:互联网 发布:linux启动oracle监听 编辑:程序博客网 时间:2024/04/30 19:04
在自己去实现更新联系人头像是经常遇到更新联系人头像失败的问题
现象:联系人头像字段若已经存储头像数据可以正常更新,若当前修改的联系人头像不存在,则会出现更新失败的情况;
原因:当联系人已经存在联系人头像时,存储联系人头像二进制字段已经占位,即表示数据库中已经存在该条记录,
我们只需要调用getContentResolver().update()方法更新头像,若联系人头像不存在,用户新增头像需要调用
getContentResolver().insert方法插入头像;实例参考代码:
String phoneWhere = ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId; Cursor phoneCursor = mView.getCtx().getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, phoneWhere , null, null); if(phoneCursor.moveToNext()){ Long photoId = phoneCursor.getLong(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_ID)); if(bm != null){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] data = baos.toByteArray(); //更新 if(photoId > 0){ values.clear(); values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, data);// values.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE); String wherebm = ContactsContract.Data.RAW_CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=? "; //rawContactsId -> contactId String[] selectionArgsbm = new String[]{rawContactsId, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE}; int id = mView.getCtx().getContentResolver().update(ContactsContract.Data.CONTENT_URI, values, wherebm, selectionArgsbm); }else{ //插入 //保存联系人头像 values.clear(); values.put(ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactsId); values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, data); values.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE); mView.getCtx().getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); } } }
0 1
- Android 更新联系人头像失败问题
- 联系人头像 android
- Android 手机通讯录开发时给联系人添加头像失败的坑
- android sdk 更新失败问题
- android中华为、小米手机设置头像裁剪失败问题
- android 通过手机号查找联系人的头像
- android 取得系统联系人的头像
- android通过查询电话号码获取联系人头像
- 通过代码设置Android联系人的头像
- android通过查询电话号码获取联系人头像
- android通过查询电话号码获取联系人头像
- 解决android sdk manager更新失败问题
- 解决android sdk manager更新失败问题
- 解决android sdk manager更新失败问题
- android sdk manager 更新失败问题
- 解决android sdk manager更新失败问题
- 解决Android SDK Manager更新失败问题
- 解决Android SDK Manager更新失败问题
- 字符串的表示
- 在AndroidStudio中出现android no debuggable application
- Mina学习(一)
- springmvc简单例子
- logstash ArgumentError: comparison of String with 5 failed
- Android 更新联系人头像失败问题
- Android NDK学习笔记13-JNI的局部和全局引用
- spring data mongo API learn
- position笔记
- AndroidStudio多渠道打包
- RTl8188EUS无线网卡驱动编译,支持master模式
- C# $字符串
- 关于iOS中的NSUserDefaults系统隐藏目录
- [缩树 主席树] BZOJ 4539 [Hnoi2016]树