台州天气预报一周,基督教讲道讲章,绘威
上一篇文章讲了,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。
因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多其实看下如何读取的就会了。
直接上源码:
/** * 添加联系人到本机 * * @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 apk 项目一键打包并上传到蒲公英的实现方法
Android 自定义LineLayout实现满屏任意拖动功能的示例代码
android 限制某个操作每天只能操作指定的次数(示例代码详解)
Android 集成 google 登录并获取性别等隐私信息的实现代码
网友评论