我需要检索用户选择的单个联系人的所有数据(Action.Pick)。我想使用developer.android.com建议的LOOKUP KEY。我是否可以通过简单的查询来完成,而无需按照文档的建议创建Loader等?
答案 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
查询联系人提供商。您将收到一个包含多行原始联系人详细信息(电话,电子邮件等)的游标。迭代光标读取它们,不要忘记关闭光标。