cybadr Posté(e) 9 juin 2010 Share Posté(e) 9 juin 2010 Bonjour, Voulant développer sous android, je crée actuellement une petite application pour me faire la main ( un gestionnaire d'appel) J'arrive donc à afficher la liste des appels ( Nom de la personne s'il est connu sinon le numéro ). Par contre je ne comprend pas comment récupérer la photo lié au nom. Est-il possible de faire des jointures sur les tables ou existe t-il un autre moyen ? Voici mon cursor pour les appels. private void getCall() { call = new ArrayList(); Uri uri = Calls.CONTENT_URI; String[] projection = new String[] {Calls._ID,Calls.NUMBER,Calls.TYPE , Calls.CACHED_NAME,Calls.DATE}; Cursor cur = managedQuery(uri, projection, null, null, Calls.DATE + " DESC"); this.startManagingCursor(cur); if (cur.moveToFirst()) { do { String number = cur.getString(cur.getColumnIndex(Calls.NUMBER)); String type = cur.getString(cur.getColumnIndex(Calls.TYPE)); String name =cur.getString(cur.getColumnIndex(Calls.CACHED_NAME)); call.add(new Call(number, type, name)); } while (cur.moveToNext()); } } Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
eephyne Posté(e) 10 juin 2010 Share Posté(e) 10 juin 2010 pour dev < API 5 (2.0) il y a http://developer.android.com/reference/android/provider/Contacts.PhotosColumns.html sinon il faut chercher dans ContactsContract edit: http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Photo.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
cybadr Posté(e) 10 juin 2010 Auteur Share Posté(e) 10 juin 2010 Tout d'abord merci pour la réponse. Mais en fait ce que je ne comprend pas c'est comment faire la liaison entre deux tables/providers. Exemple pour moi entre le provider Calls et le provider ContactContracts. Lien vers le commentaire Partager sur d’autres sites More sharing options...
eephyne Posté(e) 10 juin 2010 Share Posté(e) 10 juin 2010 je pense que tu peu faire le lien avec un contact_id trouvé dans le call log et/ou dans les contact Lien vers le commentaire Partager sur d’autres sites More sharing options...
Puni Posté(e) 10 juin 2010 Share Posté(e) 10 juin 2010 Tu trouveras des explications sur la manière de faire des requêtes multi-tables ici : https://forum.frandroid.com/forum/viewtopic.php?id=12853 Lien vers le commentaire Partager sur d’autres sites More sharing options...
cybadr Posté(e) 12 juin 2010 Auteur Share Posté(e) 12 juin 2010 Oui je sais comment faire des jointures sur des requêtes SQL. Mon problème c'est de joindre deux providers ( et donc deux cursor ). Je voudrais joindre le providers Calls avec le Provider Contacts en utilisant par exemple le nom de la personne. J'ai trouvé l'élément CursorJoiner dans la doc mais il est dit que le champs qui doit joindre les deux Cursor doit être unique, or je ne pense pas que le nom de la personne soit unique. Après peut-être qu'effectivement on peut faire des requêtes directement en SQL en utilisant le providers ?? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.