可能重复:
Efficient way to load all contacts and all phone numbers (Android 2.0)
有没有办法获取所有联系人的所有电话号码,而无需为每个联系人单独查询? (使用Android 2.0+)。如果你有超过100个联系人,目前真的很慢,我想知道我是否可以做更有效的查询。
目前我正在获取一个包含所有有效ContactsContract.Contacts.IN_VISIBLE_GROUP联系人的游标,然后为每个联系人单独查询以获取所有数字。
获取联系人的片段只是提交名称和查找键:
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.LOOKUP_KEY};
然后每个联系人使用查找键。
Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
Uri res = ContactsContract.Contacts.lookupContact(contentResolver, lookupUri);
String[] projection = new String[]{ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.HAS_PHONE_NUMBER};