• Tag Archive | "liste contact"

  • Tags: , , , ,

    Développement-Utiliser la liste de ses contacts dans ses applications Android

    Publié le 04 novembre 2009 par Guy


    Dans ce tuto je vais développer une petite application qui affiche la liste de mes contacts sous la forme Nom=>Numéro. Ce tutoriel permet de voir comment on peut récupérer la liste de ses contacts de son téléphone.

    Après avoir créer mon projet dans eclipse, je vais donner l’autorisation à mon application d’accéder à ma liste de contact. Dans mon fichier AndroidManifest je rajoute la permission android.permission.READ_CONTACTS

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="org.com.listecontact"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".ListeContact"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
        </application>
        <uses-sdk android:minSdkVersion="3" />
    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
    </manifest>

    Ma classe principale est une extention de la classe ListActivity pour afficher ma listview. J’ai une variable Mescontacts de type ArrayList qui contiendra la liste de mes contacts

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    public class ListeContact extends ListActivity {
    	//tableau dans lequel je range mes contacts
    	private ArrayList<String> Mescontacts;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //Methode qui récupérer mes contact
            ListContact();;
            setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Mescontacts));
        }

    .

    La méthode qui récupère mes contacts et remplit mon tableau MesContacts et La méthode ListContact(). Dans cette méthode mon objet ConnectApp de type ContentResolver qui permet de communique avec d’autres applications. J’ai mon objet uri de Type Uri dans lequel je mets l’adresse (Android) de l’application avec laquelle je vais communiquer.

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
     private void ListContact() {
        	// notre tableau de contact
        	Mescontacts = new ArrayList<String>();
            // instance qui permet d'acceder au contenu d'autre application
        	ContentResolver ConnectApp = this.getContentResolver();
        	Uri uri = Contacts.People.CONTENT_URI;
             String[] projection = new String[] {People.NAME, People.NUMBER, People._ID };
            // on récupere les contacts dans un curseur
             Cursor cur = ConnectApp.query(uri, projection, null, null, null);
             this.startManagingCursor(cur);
     
             if (cur.moveToFirst()) {
                 do {
                     String name = cur.getString(cur.getColumnIndex(People.NAME));
                     String num = cur.getString(cur.getColumnIndex(People.NUMBER));
                     String id = cur.getString(cur.getColumnIndex(Contacts.People._ID));
                     Mescontacts.add(name+"=>"+num);
     
     
                 } while (cur.moveToNext());
             }
         }

    Résultat
    contactappli Développement Utiliser la liste de ses contacts dans ses applications Android Android France
    code complet

    ?Download download.txt
    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
    48
    49
    50
    51
    
    package org.com.listecontact;
     
    import java.util.ArrayList;
     
    import android.app.Activity;
    import android.app.ListActivity;
    import android.content.ContentResolver;
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.Contacts;
    import android.provider.Contacts.People;
    import android.widget.ArrayAdapter;
     
    public class ListeContact extends ListActivity {
    	//tableau dans lequel je range mes contacts
    	private ArrayList<String> Mescontacts;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            ListContact();
            setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Mescontacts));
        }
     
     
        private void ListContact() {
        	// notre tableau de contact
        	Mescontacts = new ArrayList<String>();
            // instance qui permet d'acceder au contenu d'autre application
        	ContentResolver ConnectApp = this.getContentResolver();
        	Uri uri = Contacts.People.CONTENT_URI;
             String[] projection = new String[] {People.NAME, People.NUMBER, People._ID };
            // on récupere les contacts dans un curseur
             Cursor cur = ConnectApp.query(uri, projection, null, null, null);
             this.startManagingCursor(cur);
     
             if (cur.moveToFirst()) {
                 do {
                     String name = cur.getString(cur.getColumnIndex(People.NAME));
                     String num = cur.getString(cur.getColumnIndex(People.NUMBER));
                     String id = cur.getString(cur.getColumnIndex(Contacts.People._ID));
                     Mescontacts.add(name+"=>"+num);
     
     
                 } while (cur.moveToNext());
             }
         }
     
        }

    Comments (12)

  • Les Brèves