获取联系人详细信息给定查找URI

时间:2018-01-17 06:17:56

标签: android

假设:

Uri contactLookupURI = ContactsContract.Contacts.getLookupUri(contactID, lookupKey);

如何使用此功能获取联系人的详细信息,如电话,电子邮件等?

我试过了:

String[] CDETAIL_PROJECTION = {
            ContactsContract.Contacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME_PRIMARY,
            ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Email.ADDRESS,
    };


Cursor detail_cursor = getContext().getContentResolver().query(contactLookupURI, CDETAIL_PROJECTION, null, null, null);

但是我收到错误说"无效列:data1" ,我猜这是指Phone.NUMBER字段。这可能是因为它引用了没有该字段的联系人表格?

根据其他答案,我可以使用_ID获取联系方式,但我只想使用URI。

另外,你能告诉我什么

ContactsContract.Contacts.lookupContact() 

呢?该文档说明它为我提供了内容URI,但它与查找URI有何不同?

1 个答案:

答案 0 :(得分:0)

您收到无效列:data1 ,因为ContactsContract.CommonDataKinds.Phone.NUMBERContactsContract.CommonDataKinds.Email.ADDRESS的值与“data1”相同。 你无法直接获得这些信息。

此处是获取用户https://stackoverflow.com/a/40540640/2941375

的电子邮件和号码的解决方案