¿Hay alguna forma de obtener todos los números de teléfono para todos los contactos sin hacer una consulta por separado para cada contacto? (usando Android 2.0+). Es realmente lento si tienes más de 100 contactos (inutilizables en teléfonos de gama baja), me preguntaba si podría hacer una consulta más eficiente.Manera eficiente de cargar todos los contactos y todos los números de teléfono (Android 2.0)
Actualmente estoy obteniendo un cursor con todos los contactos válidos ContactsContract.Contacts.IN_VISIBLE_GROUP contactos y luego una consulta separada para cada contacto para obtener todos sus números.
de fragmentos desde el primer contacto solo geting nombre y la búsqueda de claves:
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.LOOKUP_KEY};
Entonces cada contacto utilizando la clave de búsqueda.
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);
que vincula a esta pregunta? – scottyab
Tiene razón debe presentar el formulario dos veces. Buen lugar. Votado para cerrar. – scottyab