读取联系人和添加联系人

<p style="margin: 10px auto; line-height: 19.5px; font-size: 13px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);">bean类Contact:</span></p><div class="cnblogs_code" style="border: 1px solid rgb(204, 204, 204); padding: 5px; overflow: auto; margin: 5px 0px; font-family: 'Courier New' !important;"></div>
import java.util.ArrayList;
import java.util.List;

public class Contact {
    private String name;
    private String email;
    private String address;
    private List<String> phone = new ArrayList<String>();

    public Contact() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Contact(String name, String email, String address, List<String> phone) {
        super();
        this.name = name;
        this.email = email;
        this.address = address;
        this.phone = phone;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public List<String> getPhone() {
        return phone;
    }

    public void setPhone(List<String> phone) {
        this.phone = phone;
    }
}

Contact


读取联系人:

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
    private static final String TAG = "MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        readContact();
    }

    public List<Contact> readContact() {
        List<Contact> list ;
        ContentResolver resolver = getContentResolver();
        Uri raw_contactUri = Uri.parse("content://com.android.contacts/raw_contacts");
        Cursor cursor = resolver.query(raw_contactUri, new String[] { "contact_id" }, 
                null, null, null);
        if (cursor != null && cursor.getCount() > 0) {
            list= new ArrayList<Contact>();
            while (cursor.moveToNext()) {
                Integer contact_id = cursor.getInt(0);
                Uri dataUri = Uri.parse("content://com.android.contacts/data");
                String selection = "raw_contact_id=?";
                String[] selectionArgs = new String[] { String.valueOf(contact_id) };
                Cursor cursor_data = resolver.query(dataUri, new String[] { "mimetype", 
                        "data1" }, selection,
                        selectionArgs, null);
                if (cursor_data != null && cursor_data.getCount() > 0) {
                    Contact contact = new Contact();
                    while (cursor_data.moveToNext()) {
                        String mimetype = cursor_data.getString(0);
                        String data1 = cursor_data.getString(1);
                        if ("vnd.android.cursor.item/name".equals(mimetype)) {
                            contact.setName(data1);
                        } else if ("vnd.android.cursor.item/postal-address_v2".equals(mimetype)) {
                            contact.setAddress(data1);
                        } else if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {
                            contact.setEmail(data1);
                        } else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
                            contact.getPhone().add(data1);
                        }
                        list.add(contact);
                        Log.i(TAG, "mimetype=" + mimetype + "\tdata1=" + data1);
                    }
                    cursor_data.close();
                }
            }
            cursor.close();
            Log.i(TAG, "----------");
            return list;
        }
        return null;
    }

}

readContact

添加联系人:

public void writeContact()
    {
        //1.获得访问内容提供者的工具类
        ContentResolver resolver = getContentResolver();
        //2. 获取到已存入联系人数据库里面的最后一个联系人的contact_id,然后在加1 就是现在要添加的练习题的contact_id
        Uri raw_contact_uri = Uri.parse("content://com.android.contacts/raw_contacts");
        Cursor cursor = resolver.query(raw_contact_uri, new String[]{"contact_id"}, null, 
                null, "contact_id desc limit 1");
        Integer max_contact_id = 0;
        if(null != cursor && cursor.moveToFirst())
        {
            max_contact_id = cursor.getInt(0);
        }
        
        max_contact_id = max_contact_id + 1;
        //3. 往raw_contact表里面添加contact_id
        ContentValues values = new ContentValues();
        values.put("contact_id", max_contact_id);
        
        raw_contact_uri = resolver.insert(raw_contact_uri, values);
        Log.i(TAG, "raw_contact_uri=" + raw_contact_uri);
        //4. 往data里面添加数据(姓名,email,address,phone等信息)
        //注意:一个信息是一样记录,所以添加一个联系人的多个信息的时候要执行多个insert操作
        Uri data_uri = Uri.parse("content://com.android.contacts/data");
        
        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/name");
        values.put("data1", "1505");
        resolver.insert(data_uri, values);
        
        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/email_v2");
        values.put("data1", "4654654@qq,com");
        resolver.insert(data_uri, values);
        
        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/phone_v2");
        values.put("data1", "16824524");
        resolver.insert(data_uri, values);
        
        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/postal-address_v2");
        values.put("data1", "西安路");
        resolver.insert(data_uri, values);
    }


 writeContact



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值