2010-02-05 16 views
7

Dado un identificador de contacto, puedo obtener varios detalles de contacto (como nombre, teléfono, ID de correo electrónico, etc.) haciendo diferentes consultas para cada uno de estos campos.Cómo obtener todos los detalles de un contacto en Android

¿Pero hay un método para obtener todos los detalles asociados con esta identificación de contacto al hacer una sola consulta?

+0

@Octavian: No estoy seguro de que estoy de acuerdo con la eliminación de * Android * del título de la pregunta. Esto parece ser una ocurrencia bastante común para preguntas sobre otras tecnologías. Esta puede ser una pregunta de edición para meta – NotMe

+0

@ChrisLively Tengo que admitir que puede que tengas razón en esta. Lo cambiaré de vuelta. –

Respuesta

12

Tuve que cambiar un poco el tutorial en Content Providers ya que hacía referencia a las clases en desuso, esto podría ayudar.

import android.provider.ContactsContract.Contacts; 
import android.database.Cursor; 

// Form an array specifying which columns to return, you can add more. 
String[] projection = new String[] { 
         ContactsContract.Contacts.DISPLAY_NAME, 
         ContactsContract.CommonDataKinds.Phone 
         ContactsContract.CommonDataKinds.Email 
         }; 

Uri contacts = ContactsContract.Contacts.CONTENT_LOOKUP_URI; 
// id of the Contact to return. 
long id = 3; 

// Make the query. 
Cursor managedCursor = managedQuery(contacts, 
        projection, // Which columns to return 
        null,  // Which rows to return (all rows) 
           // Selection arguments (with a given ID) 
        ContactsContract.Contacts._ID = "id", 
           // Put the results in ascending order by name 
        ContactsContract.Contacts.DISPLAY_NAME + " ASC"); 
+0

Gracias por la pronta respuesta. Pero estoy usando 1.6 SDK y ContactsContract parece funcionar para 2.0 o superior. Cualquier solución para las versiones 1.6 y siguientes de Android – pankajagarwal

+0

@frieza Regrese y vea el tutorial de Proveedores de contenido vinculado en la parte superior de la respuesta. Aparentemente Anthony tomó el tutorial y lo actualizó a 2.0 cuando publicó su respuesta, pero lo que necesita es el tutorial original. –

+0

Er, eso fue mi culpa. Seguí adelante y asumí que era el SDK 2.0, pero mbaird tiene razón, el tutorial en el enlace 'Proveedores de contenido' debería funcionar bien para usted. –

Cuestiones relacionadas