Android 如何获取具有特定查找密钥的联系人的所有原始联系人?

Android 如何获取具有特定查找密钥的联系人的所有原始联系人?,android,android-contacts,android-cursor,Android,Android Contacts,Android Cursor,给定一个电话号码,我首先找出拥有这个号码的联系人的查找键。从那里,有没有一种方法可以通过单个查询检索原始联系人列表 我尝试了以下方法 ContentResolver cr = context.getContentResolver(); // Get all RawContacts associated with lookupKey Cursor contactCursor = cr.query( Uri.withAppendedPa

给定一个电话号码,我首先找出拥有这个号码的联系人的查找键。从那里,有没有一种方法可以通过单个查询检索原始联系人列表

我尝试了以下方法

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条目,即联系人ID(不是RawContact的ID)。

在这种情况下,不要使用
LOOKUP\u键
,而是从电话号码中获取
联系人。_ID
,然后通过以下方式获取所有
RawContacts


谢谢你,马尔默。因为起点是电话号码,所以直接通过PhoneLookup查询而不是Lookup_键获取ContactId可以吗,这将为我节省一个查询(从查找键解析ContactID)。是的,正是我的意思:电话号码>联系人id>原始联系人
cr.query(RawContacts.CONTENT_URI,
    new String[]{ RawContacts._ID },
    RawContacts.CONTACT_ID + "=" + theContactId,
    null,
    null);