Étant donné un numéro de téléphone, je découvre d'abord le LOOKUP_KEY du contact qui a ce numéro. À partir de là, existe-t-il un moyen de récupérer la liste des contacts bruts avec une seule requête?Comment puis-je obtenir tous les contacts bruts pour un contact avec un LOOKUP_KEY spécifique?
J'ai essayé l'approche suivante
ContentResolver cr = context.getContentResolver();
// Get all RawContacts associated with lookupKey
Cursor contactCursor = cr.query(
Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookup_key),
new String[]{ContactsContract.RawContacts._ID},
null,
null,
null);
Mais contactCursor contient toujours une seule entrée, même lorsque le contrat a interrogé plusieurs contacts premières. Pour être honnête, je ne comprends pas très bien pourquoi la requête ci-dessus retourne même quelque chose, car il n'y a pas d'entrée RawContacts dans la table ContactsContract.Contacts. Je suppose qu'il renvoie juste l'entrée _ID de cette table, qui est le Contact_ID (pas l'Id d'un RawContact).
Merci Marmor. Puisque le point de départ est le numéro de téléphone, est-ce que c'est OK d'obtenir directement leContactId via la requête PhoneLookup au lieu de la clé de recherche? , cela me sauverait une requête (pour résoudre theContactId de Lookup_Key). – user2795888
oui, exactement ce que je voulais dire: numéro de téléphone> contact-id> raw-contacts – marmor