上一篇文章讲了如何获取所有联系人,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。

因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多其实看下如何读取的就会了。
直接上源码:
/**
* 添加联系人到本机
*
* @param context
* @param contact
* @return
*/
public static boolean addContact(Context context, ContactEntity contact) {
try {
ContentValues values = new ContentValues();
// 下面的操作会根据RawContacts表中已有的rawContactId使用情况自动生成新联系人的rawContactId
Uri rawContactUri = context.getContentResolver().insert(
RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
// 向data表插入姓名数据
String name = contact.getName();
if (name != "") {
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(StructuredName.GIVEN_NAME, name);
context.getContentResolver().insert(
ContactsContract.Data.CONTENT_URI, values);
}
// 向data表插入电话数据
String mobile_number = contact.getPhone1().get(0);
if (mobile_number != "") {
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, mobile_number);
values.put(Phone.TYPE, Phone.TYPE_MOBILE);
context.getContentResolver().insert(
ContactsContract.Data.CONTENT_URI, values);
}
// 向data表插入Email数据
String email = contact.getEmail();
if (email != "") {
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA, email);
values.put(Email.TYPE, Email.TYPE_WORK);
context.getContentResolver().insert(
ContactsContract.Data.CONTENT_URI, values);
}
// 向data表插入QQ数据
String qq = contact.getQq();
if (qq != "") {
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
values.put(Im.DATA, qq);
values.put(Im.PROTOCOL, Im.PROTOCOL_QQ);
context.getContentResolver().insert(
ContactsContract.Data.CONTENT_URI, values);
}
// 向data表插入备注信息
String describe = contact.getDescribe();
if (describe != "") {
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Note.CONTENT_ITEM_TYPE);
values.put(Note.NOTE, describe);
context.getContentResolver().insert(
ContactsContract.Data.CONTENT_URI, values);
}
// 向data表插入头像数据
Bitmap sourceBitmap = BitmapFactory.decodeResource(
context.getResources(), R.drawable.icon);
final ByteArrayOutputStream os = new ByteArrayOutputStream();
// 将Bitmap压缩成PNG编码,质量为100%存储
sourceBitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
byte[] avatar = os.toByteArray();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE);
values.put(Photo.PHOTO, avatar);
context.getContentResolver().insert(
ContactsContract.Data.CONTENT_URI, values);
}
catch (Exception e) {
return false;
}
return true;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android
# 联系人
# 通讯录
# Android ContentProvider实现手机联系人读取和插入
# Android读取手机通讯录联系人到自己项目
# android仿微信联系人索引列表功能
# android如何获取联系人所有信息
# Android使用AsyncQueryHandler实现获取手机联系人功能
# Android ContentProvider实现获取手机联系人功能
# Android 获取手机联系人实例代码详解
# android实现读取、搜索联系人的代码
# Android ContentProvider获取手机联系人实例
# Android小程序实现访问联系人
# 本机
# 是一个
# 我就
# 那么多
# 上一
# 很简单
# 你已经
# 这篇文章
# 讲了
# 人到
# 拿到了
# 自动生成
# 会了
# 大家多多
# 只给
# 压缩成
# 所以我
# Context
# addContact
# ContactEntity
相关文章:
seo网站制作优化,网站SEO优化步骤有哪些?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星展会模版如何一键下载生成?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
C++中引用和指针有什么区别?(代码说明)
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
如何在搬瓦工VPS快速搭建网站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
建站主机数据库如何配置才能提升网站性能?
如何通过虚拟主机快速搭建个人网站?
建站之星伪静态规则如何设置?
湖北网站制作公司有哪些,湖北清能集团官网?
建站主机与服务器功能差异如何区分?
如何在万网ECS上快速搭建专属网站?
网站制作网站,深圳做网站哪家比较好?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
全景视频制作网站有哪些,全景图怎么做成网页?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
定制建站是什么?如何实现个性化需求?
如何做网站制作流程,*游戏网站怎么搭建?
如何快速选择适合个人网站的云服务器配置?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
建站之星后台管理如何实现高效配置?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
Python lxml的etree和ElementTree有什么区别
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何通过主机屋免费建站教程十分钟搭建网站?
如何快速生成ASP一键建站模板并优化安全性?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何在云服务器上快速搭建个人网站?
网站代码制作软件有哪些,如何生成自己网站的代码?
建站之星如何实现五合一智能建站与营销推广?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
深圳网站制作培训,深圳哪些招聘网站比较好?
制作企业网站建设方案,怎样建设一个公司网站?
如何通过可视化优化提升建站效果?
C#如何序列化对象为XML XmlSerializer用法
如何选择高效稳定的ISP建站解决方案?
建站之星客服服务时间及联系方式如何?
如何快速查询域名建站关键信息?
如何通过二级域名建站提升品牌影响力?
如何在宝塔面板中创建新站点?
建站之星后台密码遗忘或太弱?如何重置与强化?
c++怎么用jemalloc c++替换默认内存分配器【性能】
*请认真填写需求信息,我们会在24小时内与您取得联系。