我有以下代码可以从内容提供程序
中获取联系人
String[] columns = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts._ID,
ContactsContract.Contacts.PHOTO_ID };
Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,
columns, null, null, null);
我使用这个函数来获取特定联系人ID的电子邮件:
Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID
+ " = " + contact.getContactId(), null, null);
我目前的实现方式是通过遍历游标中的每一行,获取其电子邮件并将它们存储在Java对象的ArrayList中。
我想知道是否可以仅查询内容提供程序并返回仅具有电子邮件地址列表的id / name等联系人的游标。
这种方法需要等待很长时间来获取联系人列表。我正在使用此列表用于列表适配器。如果只能获取具有电子邮件的联系人,则可以在我的列表中使用游标适配器。
是否可能像这样做?如何加快这个过程?