美文网首页
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