2010-02-05 21 views
7

Dato un ID di contatto, posso ottenere vari dettagli di contatto (come nome, telefono, email-id, ecc.) Facendo query diverse per ognuno di questi campi.Come ottenere tutti i dettagli di un contatto in Android

Ma esiste un metodo per ottenere tutti i dettagli associati a questo ID di contatto effettuando una singola query?

+0

@Octavian: Non sono sicuro di essere d'accordo con la rimozione di * Android * dal titolo della domanda. Questo sembra essere un evento abbastanza comune per domande su altre tecnologie. Questa potrebbe essere una domanda di modifica per meta – NotMe

+0

@ChrisLively Devo ammettere che potresti avere ragione su questo. Lo cambierò di nuovo. –

risposta

12

Dovuto modificare un po 'del tutorial su Content Providers poiché fa riferimento a classi deprecate, questo potrebbe aiutare.

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

Grazie per la pronta risposta. Ma sto usando 1.6 SDK e ContactsContract sembra funzionare per 2.0 e sopra. Qualsiasi soluzione per le versioni 1.6 e successive di Android – pankajagarwal

+0

@frieza Torna indietro e guarda il tutorial di Content Provider in cima alla risposta. Apparentemente Anthony ha preso il tutorial e lo ha aggiornato alla 2.0 quando ha pubblicato la sua risposta, ma quello di cui hai bisogno è il tutorial originale. –

+0

Er, è stata colpa mia se sono andato avanti e ho pensato che fosse l'SDK 2.0, ma mbaird ha ragione, il tutorial nel link "Content Provider" dovrebbe funzionare bene per te. –

Problemi correlati