Android使用查找键获取联系人数据

时间:2016-12-23 15:44:11

标签: android contacts

我需要检索用户选择的单个联系人的所有数据(Action.Pick)。我想使用developer.android.com建议的LOOKUP KEY。我是否可以通过简单的查询来完成,而无需按照文档的建议创建Loader等?

2 个答案:

答案 0 :(得分:0)

我为我的应用程序编写了这个方法:

public static Cursor getContactCursorByLookUpKey(Context context,String lookUpKey)
{
    ContentResolver contentResolver = context.getContentResolver();
    Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI,lookUpKey);
    return contentResolver.query(lookupUri,null,null,null,null);
}

获取数据只需从光标读取数据。例如:

Cursor data = ContactManager.getContactCursorByLookUpKey(ContactDetailsActivity.this,lookUpKey);
String name = data.getString(data.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String photoPath = data.getString(data.getColumnIndex(ContactsContract.Contacts.PHOTO_URI));

答案 1 :(得分:0)

如果您拥有ContentResolver权限,则可以直接使用READ_CONTACTS查询联系人提供商。您将收到一个包含多行原始联系人详细信息(电话,电子邮件等)的游标。迭代光标读取它们,不要忘记关闭光标。