IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Lecture des contacts


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Par défaut Lecture des contacts
    Bonjour

    J'essaie de lire la liste des contacts du téléphone via le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    String[] projection = new String[] {
                        People._ID,
                        People._COUNT,
                        People.NAME,
                        People.NUMBER
                     };
     
    Uri contacts =  People.CONTENT_URI;
    Cursor managedCursor = managedQuery(contacts,
                        projection, // Which columns to return 
                        null,       // Which rows to return (all rows)
                        null,       // Selection arguments (none)
                        // Put the results in ascending order by name
                        People.NAME + " ASC");
    Il y a plantage sur managedCursor

    PS : j'ai mis en place la permission d'accès au contact dans le Manifest via

    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>

    Merci pour l'aide

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Pourrais tu nous donner l'exception ?
    Merci.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Par défaut
    Voici les exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    08-18 14:56:29.400: ERROR/DatabaseUtils(811): Writing exception to parcel
    08-18 14:56:29.400: ERROR/DatabaseUtils(811): java.lang.IllegalArgumentException: Invalid column _count
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at android.database.sqlite.SQLiteQueryBuilder.computeProjection(SQLiteQueryBuilder.java:505)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at android.database.sqlite.SQLiteQueryBuilder.buildQuery(SQLiteQueryBuilder.java:356)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:309)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at com.android.providers.contacts.ContactsProvider.queryInternal(ContactsProvider.java:5049)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at android.content.AbstractSyncableContentProvider.query(AbstractSyncableContentProvider.java:431)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:116)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:120)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at android.os.Binder.execTransact(Binder.java:287)
    08-18 14:56:29.400: ERROR/DatabaseUtils(811):     at dalvik.system.NativeStart.run(Native Method)
    08-18 14:56:29.430: DEBUG/AndroidRuntime(8673): Shutting down VM
    08-18 14:56:29.430: WARN/dalvikvm(8673): threadid=3: thread exiting with uncaught exception (group=0x4001db88)
    08-18 14:56:29.430: ERROR/AndroidRuntime(8673): Uncaught handler: thread main exiting due to uncaught exception
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673): java.lang.IllegalArgumentException: Invalid column _count
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:129)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:111)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.content.ContentProviderProxy.bulkQuery(ContentProviderNative.java:322)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.content.ContentProviderProxy.query(ContentProviderNative.java:341)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.content.ContentResolver.query(ContentResolver.java:152)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.app.Activity.managedQuery(Activity.java:1493)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.urgence.Urgence.onCreateDialog(Urgence.java:419)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.app.Activity.createDialog(Activity.java:867)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.app.Activity.showDialog(Activity.java:2408)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.urgence.Urgence.onOptionsItemSelected(Urgence.java:155)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.app.Activity.onMenuItemSelected(Activity.java:2096)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:834)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:813)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:541)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.view.View.onTouchEvent(View.java:4137)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.widget.TextView.onTouchEvent(TextView.java:6555)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.view.View.dispatchTouchEvent(View.java:3675)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:923)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:923)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1741)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1819)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.os.Handler.dispatchMessage(Handler.java:99)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.os.Looper.loop(Looper.java:123)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at android.app.ActivityThread.main(ActivityThread.java:4321)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at java.lang.reflect.Method.invokeNative(Native Method)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at java.lang.reflect.Method.invoke(Method.java:521)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
    08-18 14:56:29.470: ERROR/AndroidRuntime(8673):     at dalvik.system.NativeStart.main(Native Method)
    Au prime abord c'est une histoire de colonne mais ce n'est pas clair

    @+

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Merci,

    Effectivement le soucis à l'air de venir d'une colonne. Quel est le but de ta requete ? Récupérer une simple liste (id + nom + numéro) de contact ?

    Quel est la plateforme ciblée ? Entre la 1.5 et la 1.6 (ou entre la 1.6 et la 2.0) il y a eu des changements pour la gestion des contacts.
    Voici deux ressources qui te permetteront peut être d'avancer :
    http://d.android.com/resources/sampl...ctManager.html
    et
    http://d.android.com/reference/andro...sContract.html

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Par défaut
    Effectivement récupérer une simple liste de nom et numéro de téléphone.
    Je suis sur une base 1.6
    A partir de la version 2, il y a eu une évolution de l'API et la classe Contacts est dépréciée au profit de la classe ContactsContract. Hélas, mon téléphone est en 1.6 d'où le maintien de l'OS version 1.6
    D'où le problème

  6. #6
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Si tu regardes dans l'exemple API démo fourni avec le SDK (dans la version 1.6), tu trouveras dans la section "List" pas mal de listes contenant des contacts.

    exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null);
    startManagingCursor(c);
     
     // Map Cursor columns to views defined in simple_list_item_2.xml
    ListAdapter adapter = new SimpleCursorAdapter(this,
                    android.R.layout.simple_list_item_2, c, 
                            new String[] { Phones.NAME, Phones.NUMBER }, 
                            new int[] { android.R.id.text1, android.R.id.text2 });
    setListAdapter(adapter);
    Ce que je peux te suggérer si tu veux uniquement les nom et les numéro de téléphone, tu n'as donc aps besoin de cette colonne "count" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String[] projection = new String[] {
                        People._ID,
                        People.NAME,
                        People.NUMBER
                     };
     
    Uri contacts =  People.CONTENT_URI;
    Cursor managedCursor = managedQuery(contacts,
                        projection, // Which columns to return 
                        null,       // Which rows to return (all rows)
                        null,       // Selection arguments (none)
                        // Put the results in ascending order by name
                        People.NAME + " ASC");

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Par défaut Lecture des contacts - Le retour
    Bonjour

    J'ai bien accès aux contacts du téléphone mais impossible de récupérer le nom et le numéro de téléphone.

    Je nage complètement

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    final String[] telephone = new String[] {Phones.NAME,Phones.NUMBER};
     
            	final Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null);        	
                startManagingCursor(c);
     
            	final ListView listContact = (ListView)dialogContact.findViewById(R.id.ListView01);
            	ListAdapter adapterContact = new SimpleCursorAdapter(this,
                        android.R.layout.simple_list_item_2, c, 
                        telephone, 
                        new int[] { android.R.id.text1, android.R.id.text2 });
     
     
            	listContact.setAdapter(adapterContact);
     
            	listContact.setOnItemClickListener(new OnItemClickListener() { 
            		public void onItemClick(AdapterView parent, View arg1, int position, long arg3) {
     
        				String strName = c.getString(position);
        				String strPhone = c.getString(position + 1);
        				Toast toast = Toast.makeText(getApplicationContext(),strName + ',' + strPhone, Toast.LENGTH_LONG);
        				toast.show();
    					dialogContact.dismiss();
            		}
            	});
    Merci pour le coup de main

    EDIT : La suite et la résolution sont ici : http://www.developpez.net/forums/d96...ntacts-retour/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WM17] Problème de lecture des contacts sur SAMSUNG GALAXY SII
    Par diablofr dans le forum Windev Mobile
    Réponses: 4
    Dernier message: 02/02/2012, 09h47
  2. Lecture des contacts - Le retour
    Par LordDaedalus dans le forum Android
    Réponses: 2
    Dernier message: 19/08/2010, 10h31
  3. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  4. Réponses: 8
    Dernier message: 23/01/2007, 21h02
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo