给定一个电话号码,我首先找到具有此号码的联系人的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)。
答案 0 :(得分:1)
请勿在此方案中使用LOOKUP_KEY
,而是从电话号码中获取Contacts._ID
,然后按CONTACT_ID
获取所有RawContacts
:
cr.query(RawContacts.CONTENT_URI,
new String[]{ RawContacts._ID },
RawContacts.CONTACT_ID + "=" + theContactId,
null,
null);