上一篇文章讲了如何获取所有联系人,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。
因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多其实看下如何读取的就会了。
直接上源码:
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; }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android保存联系人到通讯录的方法
后端开发2023-05-30
Android添加联系人到通讯录的方法
后端开发2024-04-02
使用adb命令向Android模拟器中导入通讯录联系人的方法
后端开发2022-06-06
Android开发实现删除联系人通话记录的方法
后端开发2022-06-06
Android手机联系人快速索引(手机通讯录)
后端开发2022-06-06
Android获取手机通讯录、sim卡联系人及调用拨号界面方法
后端开发2022-06-06
Android获取联系人头像的方法
后端开发2022-06-06
Android实现内存中数据保存到sdcard的方法
后端开发2022-06-06
Android编程实现通讯录中联系人的读取,查询,添加功能示例
后端开发2023-05-31
Android使用ContentResolver搜索手机通讯录的方法
后端开发2022-06-06
android将Bitmap对象保存到SD卡中的方法
后端开发2022-06-06
Android编程操作手机通讯录的方法示例
后端开发2023-05-30
PHP实现多对一通讯录:简单实用的联系人管理
后端开发2024-03-15
Android通讯录开发之删除功能的实现方法
后端开发2022-06-06
Android实现新增及编辑联系人的方法
后端开发2022-06-06
android下载文件保存到本地的方法是什么
后端开发2023-05-30
解决android手机导出的通讯录vcf文件乱码方法
后端开发2023-09-08
Android开发之保存图片到相册的三种方法详解
后端开发2024-04-02
Android编程基于Contacts读取联系人的方法(附demo源码)
后端开发2022-06-06
咦!没有更多了?去看看其它编程学习网 内容吧