【发布时间】:2011-08-23 13:18:42
【问题描述】:
有没有一种方法可以在不为每个联系人单独查询的情况下获取所有联系人的所有电话号码? (使用 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};
...
Cursor phones = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, phoneProjection, selection, selectionArgs, sortOrder);
【问题讨论】:
-
你是对的,必须提交两次表格。好地方。投票结束。