Android保存联系人到通讯录的方法
程序员文章站
2022-05-17 22:35:18
上一篇文章讲了,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。
因为是一个工具类,所以我这里就只给一个方法了,...
上一篇文章讲了,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。
因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多其实看下如何读取的就会了。
直接上源码:
/** * 添加联系人到本机 * * @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登录记住多个密码的实现方法