当前位置:操作系统 > 安卓/Android >>

Android开发:还原通讯录、历史通话记录、短信息记录(insert方法)

1.插入通讯录
[java] 
package com.dm.restroe; 
 
import java.util.ArrayList; 
 
import android.content.ContentUris; 
import android.content.ContentValues; 
import android.content.Context; 
import android.net.Uri; 
import android.provider.ContactsContract.CommonDataKinds.Email; 
import android.provider.ContactsContract.CommonDataKinds.Phone; 
import android.provider.ContactsContract.CommonDataKinds.StructuredName; 
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; 
import android.provider.ContactsContract.Data; 
import android.provider.ContactsContract.RawContacts; 
 
import com.dm.util.ContactInfo; 
 
public class AddContact { 
 
//  private ArrayList<ContactInfo> CIList = new ArrayList<ContactInfo>(); 
 
 
    public static String fileName = ""; 
    public AddContact() { 
        // TODO Auto-generated constructor stub 
    } 
    // CIList存储要插入的通话记录内容的类,cx是调用本方法的类的context 
    public AddContact(ArrayList<ContactInfo> CIList, Context cx) { 
         
        // 用于存储联系人的地址信息 
        String[] address; 
 
        for(ContactInfo ci:CIList){ 
             
            // andress存的内容格式:type+"-"+poBox+"-"+postalCode+"-"+country+"-"+state+"-"+city+"-"+street 
            address = ci.getCiAddr().split("-"); 
             /**
              * 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId 
              * 这时后面插入data表的数据,只有执行空值插入,才能使插入的联系人在通讯录里面可见
              */ 
            ContentValues values = new ContentValues(); 
            //首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId  
            Uri rawContactUri = cx.getContentResolver().insert(RawContacts.CONTENT_URI, values); 
            long rawContactId = ContentUris.parseId(rawContactUri); 
            //往data表插入姓名数据 
            values.clear(); 
            values.put(Data.RAW_CONTACT_ID, rawContactId);  
            values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);//内容类型 
            values.put(StructuredName.GIVEN_NAME, ci.getCiName()); 
            cx.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values); 
            //往data表插入电话数据 
            values.clear(); 
            values.put(Data.RAW_CONTACT_ID, rawContactId); 
            values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); 
            values.put(Phone.NUMBER, ci.getPhoneNums()); 
            values.put(Phone.TYPE, Phone.TYPE_MOBILE); 
            cx.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values); 
            //往data表插入Email数据 
            values.clear(); 
            values.put(Data.RAW_CONTACT_ID, rawContactId); 
            values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); 
            values.put(Email.DATA, ci.getCiEmail()); 
            values.put(Email.TYPE, Email.TYPE_WORK); 
            cx.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values); 
            //往data表插入Address数据 
            switch(Integer.valueOf(address[0])){ 
                case 1: // TYPE_HOME 
                    values.clear(); 
                    values.put(Data.RAW_CONTACT_ID, rawContactId); 
                    values.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE); 
                    values.put(StructuredPostal.POBOX, address[1]); 
                    values.put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME); 
                    cx.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values); 
                     
                    values.clear(); 
                    values.put(Data.RAW_CONTACT_ID, rawContactId); 
                    values.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE); 
          

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,