2013-02-14 4 views
0

Comment obtenir le numéro de contact ID Groupe OmniscientComment obtenir l'ID de groupe de contacts Nombre (Android)

Je suppose qu'il faut être une autre requête dans celui-ci, mais je ne la moindre idée comment faire

Voici ce que j'ai essayé:

String[] projection = new String[]{ ContactsContract.Groups._ID }; 

Cursor cursor = getContentResolver().query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
     projection, 
     ContactsContract.CommonDataKinds.Phone.NUMBER +" = "+ number, 
     null, 
     null); 

cursor.moveToNext(); 
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Groups._ID)); 

(requête renvoie rien)

Merci pour votre aide!

Répondre

3

Votre requête ne renvoie rien, car il n'existe aucune colonne de ce type Groups._ID dans le jeu de données CommonDataKinds.Phone.

Essayez quelque chose comme ceci:

String sPhoneNumber = "+48123456789";  
Cursor cursor = getApplicationContext().getContentResolver().query(
       Data.CONTENT_URI, new String[] {CommonDataKinds.GroupMembership._ID}, 
       ContactsContract.CommonDataKinds.Phone.NUMBER+"='"+sPhoneNumber+"'", null, null); 

sPhoneNumber est une chaîne avec le numéro de téléphone désiré. Gardez à l'esprit que votre curseur peut encore revenir 0 en fonction:

  1. comment votre numéro de téléphone est mis en forme, à savoir que vous souhaitez groupe trouver ID pour le contact du nombre donné +49123456789 tandis que le numéro est formaté comme celui-ci +49 123 456 789. Whitespaces font ceci complètement différent String.
  2. votre contact n'appartient à aucun groupe.

De même, le curseur peut toujours renvoyer plus de résultats, principalement dans les cas où votre contact appartient à plusieurs groupes.

+0

Lonti84, merci de répondre! J'ai déjà résolu ce problème .. peut-être pas de manière si élégante. Je ne peux pas tester votre réponse maintenant car j'ai beaucoup de choses à faire, mais je vais le tester dès que possible. TNX! – Inoy

+1

@Inoy Aujourd'hui, je faisais face à un problème similaire (récupérer la base d'ID du groupe sur le nom du contact) et j'ai remarqué que ce n'était pas si simple que je l'ai posté ici. ma solution de travail était basée sur ce [article] (http://stackoverflow.com/questions/14097582/get-a-contacts-groups) – Lonti84

Questions connexes