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

因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多其实看下如何读取的就会了。
直接上源码:
/**
* 添加联系人到本机
*
* @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
相关文章:
如何通过wdcp面板快速创建网站?
如何通过IIS搭建网站并配置访问权限?
实例解析angularjs的filter过滤器
网站按钮制作软件,如何实现网页中按钮的自动点击?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
,如何利用word制作宣传手册?
如何快速登录WAP自助建站平台?
如何快速搭建自助建站会员专属系统?
C#如何使用XPathNavigator高效查询XML
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站主机与服务器功能差异如何区分?
如何快速重置建站主机并恢复默认配置?
高防服务器:AI智能防御DDoS攻击与数据安全保障
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
昆明网站制作哪家好,昆明公租房申请网上登录入口?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
python的本地网站制作,如何创建本地站点?
盐城做公司网站,江苏电子版退休证办理流程?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
动图在线制作网站有哪些,滑动动图图集怎么做?
网站制作公司排行榜,抖音怎样做个人官方网站
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
网站制作壁纸教程视频,电脑壁纸网站?
如何做静态网页,sublimetext3.0制作静态网页?
小程序网站制作需要准备什么资料,如何制作小程序?
Python多线程使用规范_线程安全解析【教程】
如何在腾讯云免费申请建站?
制作网站怎么制作,*游戏网站怎么搭建?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
网站设计制作公司地址,网站建设比较好的公司都有哪些?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
东莞专业制作网站的公司,东莞大学生网的网址是什么?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何通过主机屋免费建站教程十分钟搭建网站?
建站之星在线客服如何快速接入解答?
装修招标网站设计制作流程,装修招标流程?
建站之星客服服务时间及联系方式如何?
成都网站制作报价公司,成都工业用气开户费用?
建站上传速度慢?如何优化加速网站加载效率?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
,想在网上投简历,哪几个网站比较好?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
网站制作说明怎么写,简述网页设计的流程并说明原因?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
股票网站制作软件,网上股票怎么开户?
如何快速完成中国万网建站详细流程?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。