欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android保存联系人到通讯录的方法

程序员文章站 2023-01-26 23:41:34
上一篇文章讲了,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。  因为是一个工具类,所以我这里就只给一个方法了,...

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

因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多其实看下如何读取的就会了。

直接上源码: 

/** 
   * 添加联系人到本机 
   * 
   * @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; 
   } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。