Manera eficiente de cargar todos los contactos y todos los números de teléfono (Android 2.0)
¿Hay una forma de obtener todos los números de teléfono de todos los contactos sin hacer una consulta independiente para cada contacto? (Mediante Android 2.0+). Es muy lento si tienes más de 100 contactos (inutilizable en teléfonos de gama baja), me preguntaba si podía hacer una consulta más eficiente.
Actualmente estoy recibiendo un cursor con todos los contactos válidos ContactsContract.Contacts.IN_VISIBLE_GROUP contactos y luego una consulta independiente para cada contacto para obtener todos sus números.
- Cómo acceder a contactos en mi programa android
- acceder a los contactos de la tarjeta SIM en android
- Obtener cumpleaños para cada contacto en la aplicación de Android
- Cómo asignar una imagen (mapa de bits) mediante programación a un contacto?
- Android obtiene un cursor sólo con contactos que tienen un correo electrónico listado> android 2.0
Snippet de los contactos get get get nombre y clave de búsqueda:
Uri uri = ContactsContract.Contacts.CONTENT_URI; String[] projection = new String[] { ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.LOOKUP_KEY};
A continuación, cada contacto utilizando la tecla 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);
- Contactos de AndroidContratar y crear en varias versiones de SDK
- ¿Cómo puedo agregar una imagen de contacto dentro de ContentProviderOperation?
- Cómo eliminar el contacto duplicado de la lista de contactos en android
- Consultar contactos con datos parciales
- Android recibe la imagen de contacto del registro de llamadas
- Cómo recuperar el nombre de contacto y el número de teléfono en Android
- Leer todos los números de teléfono del contacto en android
- ¿Cómo actualizar la empresa de contacto de Android?
Compruebe si el siguiente código ayuda
public ArrayList<PhoneContactInfo> getAllPhoneContacts() { Log.d("START","Getting all Contacts"); ArrayList<PhoneContactInfo> arrContacts = new ArrayList<PhoneContactInfo>(); PhoneContactInfo phoneContactInfo=null; Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; Cursor cursor = context.getContentResolver().query(uri, new String[] {ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone._ID}, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); cursor.moveToFirst(); while (cursor.isAfterLast() == false) { String contactNumber= cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); int phoneContactID = cursor.getInt(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID)); phoneContactInfo = new PhoneContactInfo(); phoneContactInfo.setPhoneContactID(phoneContactID); phoneContactInfo.setContactName(contactName); phoneContactInfo.setContactNumber(contactNumber); if (phoneContactInfo != null) { arrContacts.add(phoneContactInfo); } phoneContactInfo = null; cursor.moveToNext(); } cursor.close(); cursor = null; Log.d("END","Got all Contacts"); return arrContacts; }
¿Por qué lo usas?
Contract.Contacts.IN_VISIBLE_GROUP
¿Todos los contactos de android están asignados a Contract.Contacts.IN_VISIBLE_GROUP?
- ¿Cuál es la lista de todos los disparadores de Android Init Language?
- ¿Cómo integrar GraphView en mi proyecto?