Les numéros de téléphone sont stockés dans leur propre table et doivent être interrogés séparément. Pour interroger la table des numéros de téléphone, utilisez l'URI stockée dans la variable SDK Contacts.Phones.CONTENT_URI. Utilisez un conditionnel WHERE pour obtenir les numéros de téléphone du contact spécifié.
if (Integer.parseInt(cur.getString(
cur.getColumnIndex(People.PRIMARY_PHONE_ID))) > 0) {
Cursor pCur = cr.query(
Contacts.Phones.CONTENT_URI,
null,
Contacts.Phones.PERSON_ID +" = ?",
new String[]{id}, null);
int i=0;
int pCount = pCur.getCount();
String[] phoneNum = new String[pCount];
String[] phoneType = new String[pCount];
while (pCur.moveToNext()) {
phoneNum[i] = pCur.getString(
pCur.getColumnIndex(Contacts.Phones.NUMBER));
phoneType[i] = pCur.getString(
pCur.getColumnIndex(Contacts.Phones.TYPE));
i++;
}
}
Interrogez la table des téléphones et obtenez un curseur stocké dans pCur. Étant donné que la base de données de contacts Android peut stocker plusieurs numéros de téléphone par contact, nous devons parcourir les résultats renvoyés. En plus de renvoyer le numéro de téléphone, la requête a également renvoyé le type de numéro (domicile, travail, mobile, etc.).
Lisez également ce tutoriel sur Working With Android Contacts API For 1.6 and Before
en double de [y at-il un moyen simple de vérifier si un appel entrant est un contact dans Android?] (http://stackoverflow.com/questions/2193664/-there-a-simple-way-to-check-if-an-incoming-caller-is-a-contact-in-android) –