2010-02-05 11 views
7

Étant donné un identifiant de contact, je peux obtenir divers détails de contact (comme le nom, le téléphone, l'adresse e-mail, etc.) en effectuant différentes requêtes pour chacun de ces champs.Comment obtenir tous les détails d'un contact dans Android

Mais existe-t-il une méthode pour obtenir tous les détails associés à cet ID de contact en effectuant une seule requête?

+0

@Octavian: Je ne suis pas sûr d'être d'accord avec la suppression de * Android * du titre de la question. Cela semble être une occurrence assez commune pour les questions sur d'autres technologies. Cela peut être une question d'édition pour meta – NotMe

+0

@ChrisLively Je dois admettre que vous pourriez avoir raison sur celui-ci. Je vais le changer. –

Répondre

12

A dû changer un peu du tutoriel sur Content Providers puisqu'il a référencé des classes obsolètes, ceci pourrait aider.

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

Merci pour la réponse rapide. Mais j'utilise 1.6 SDK et ContactsContract semble fonctionner pour 2.0 et plus. Toute solution pour les versions 1.6 et inférieures d'Android – pankajagarwal

+0

@frieza Revenez en arrière et consultez ce didacticiel sur les fournisseurs de contenu lié en haut de la réponse. Apparemment, Anthony a pris le tutoriel et l'a mis à jour vers la version 2.0 lorsqu'il a posté sa réponse, mais ce dont vous avez besoin est le tutoriel original. –

+0

Euh, c'est de ma faute si je suis parti et j'ai supposé que c'était le 2.0 SDK, mais mbaird a raison, le tutoriel dans le lien 'Content Providers' devrait fonctionner très bien pour vous. –

Questions connexes