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
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
public class ListeContact extends ListActivity {
//tableau dans lequel je range mes contacts
private ArrayList 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(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.
private void ListContact() {
// notre tableau de contact
Mescontacts = new ArrayList();
// 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());
}
}
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 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(this, android.R.layout.simple_list_item_1, Mescontacts));
}
private void ListContact() {
// notre tableau de contact
Mescontacts = new ArrayList();
// 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());
}
}
}