美文网首页
Android读取联系人数据库

Android读取联系人数据库

作者: 好学人 | 来源:发表于2019-07-29 23:33 被阅读0次

联系人表详解

contacts

// content://com.android.contacts/contacts
ContactsContract.Contacts.CONTENT_URI

附注:用户的联系人表,每个联系人占一行,不包括用户已经删除的记录。

raw_contacts

// content://com.android.contacts/raw_contacts
ContactsContract.RawContacts.CONTENT_URI

附注:用户的联系人原始数据表,每个联系人占一行,包含用户已删除的记录。

data

// content://com.android.contacts/data
ContactsContract.Data.CONTENT_URI

附注:保存了联系人的所有详细信息,包括姓名、电话号码、邮箱等,可以通过contact_idraw_contact_id查询。

查询联系人的详细信息

// 查询contacts表,获取联系人的id
ContentResolver resolver = context.getContentResolver();
Uri contactsUri = Uri.parse("content://com.android.contacts/contacts");
Cursor contactsCursor = resolver.query(contactsUri, null, null, null, null);
while (contactsCursor.moveToNext()) {
    String contact_id = contactsCursor.getString(contactsCursor.getColumnIndex("_id"));
    // 根据 contact_id 查询联系人的详细信息
    Uri dataUri = Uri.parse("content://com.android.contacts/data");
    Cursor dataCursor = resolver.query(dataUri, null, "contact_id=?", new String[]{contact_id}, null);
    // 查询当前用户(contact_id)的详细信息
    while (dataCursor.moveToNext()) {
        String mimeType = dataCursor.getString(dataCursor.getColumnIndex("mimeType"));
        String data1 = dataCursor.getString(dataCursor.getColumnIndex("data1"));
        Log.i("Haoxueren", contact_id + ":" + data1 + ":" + mimeType);
        // 用户姓名:vnd.android.cursor.item/name
        // 电话号码:vnd.android.cursor.item/phone_v2 (电话号码可能有多个)
        // 添加时间:vnd.android.cursor.item/added_time
    }
}

相关文章

网友评论

      本文标题:Android读取联系人数据库

      本文链接:https://www.haomeiwen.com/subject/rtswrctx.html