Android读取联系人数据库

联系人表详解
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_id或raw_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
    }
}

转载自 :https://www.jianshu.com/p/9ab89b087971

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值