ContentResolver查询联系人

1,了解android 手机联系人,在那个数据库里面

联系人的数据库

需要了解的字段

data

raw_contacts

mimetypes

【1】创建一个javabean  生成set get  方法 

    private String id;
    private String name;
    private String email;
    private String phone;

 【2】创建一个查询联系人的工具类: 返回的是一个(ArrayList字段)

import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;

public class QueryContactUtils {

    // 查询联系人的业务方法
    public static List<Contact> queryContact(Context context) {
        // [0]创建集合
        List<Contact> contactLists = new ArrayList<Contact>();

        // [1]由于联系人的数据库系统已经通过内容提供者暴露出来 所以我们可以直接通过内容解析者操作数据库
        Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
        Uri datUri = Uri.parse("content://com.android.contacts/data");
        Cursor cursor = context.getContentResolver().query(uri,
                new String[] { "contact_id" }, null, null, null);
        while (cursor.moveToNext()) {
            String contact_id = cursor.getString(0);

            if (contact_id != null) {
                Contact contact = new Contact();
                System.out.println("contact_id:" + contact_id);
                contact.setId(contact_id);
                // [2]在查询data表 的data1列和mimetype_id列
                Cursor dataCursor = context.getContentResolver().query(datUri,
                        new String[] { "data1", "mimetype" },
                        "raw_contact_id=?", new String[] { contact_id }, null);
                while (dataCursor.moveToNext()) {
                    String data = dataCursor.getString(0);
                    String mimetype = dataCursor.getString(1);
                    if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {
                        System.out.println("邮箱:" + data);
                        contact.setEmail(data);

                    } else if ("vnd.android.cursor.item/phone_v2"
                            .equals(mimetype)) {
                        System.out.println("电话:" + data);
                        contact.setPhone(data);

                    } else if ("vnd.android.cursor.item/name".equals(mimetype)) {
                        System.out.println("姓名:" + data);
                        contact.setName(data);
                    }
                }
                // 把bean对象加入到集合
               contactLists.add(contact);
            }
        }
        return contactLists;
    }
}

【3】MainActivity  里面查询

List<Contact> queryContacts = QueryContactUtils.queryContact(getApplicationContext());

        for (Contact contact : queryContacts) {

            System.out.println("contact::::;"+contact);

        }

【4】添加权限:

    <uses-permission android:name="android.permission.READ_CONTACTS"/>

猜你喜欢

转载自blog.csdn.net/Cricket_7/article/details/84860546