加载所有联系人和所有电话号码的有效方式(Android 2.0)

时间:2011-08-23 13:13:15

标签: android contacts

  

可能重复:
  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};

0 个答案:

没有答案