如何获取具有特定LOOKUP_KEY的联系人的所有原始联系人?

时间:2017-04-30 18:17:29

标签: android android-contacts android-cursor

给定一个电话号码,我首先找到具有此号码的联系人的LOOKUP_KEY。从那里,有没有办法通过单个查询检索原始联系人列表?

我尝试了以下方法

ContentResolver cr = context.getContentResolver();
        // Get all RawContacts associated with lookupKey
        Cursor contactCursor = cr.query(
                Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookup_key),
                new String[]{ContactsContract.RawContacts._ID},
                null,
                null,
                null);

但即使被查询的合同有多个原始联系人,contactCursor也始终包含一个条目。 说实话,我不太清楚为什么上面的查询甚至会返回任何内容,因为表ContactsContract.Contacts中没有RawContacts条目。我猜它只返回此表的_ID条目,即Contact_ID(不是RawContact的Id)。

1 个答案:

答案 0 :(得分:1)

请勿在此方案中使用LOOKUP_KEY,而是从电话号码中获取Contacts._ID,然后按CONTACT_ID获取所有RawContacts

cr.query(RawContacts.CONTENT_URI,
    new String[]{ RawContacts._ID },
    RawContacts.CONTACT_ID + "=" + theContactId,
    null,
    null);