• Développement, utiliser les sms dans ses applications

    Publié le 09 octobre 2009 par Guy (GuyTouch)


    Dans ce tuto je vais faire une application qui liste les sms reçus par le téléphone. Je vais pour cela utiliser le fournisseur de contenu (provider) sms. Certaines applications d’android peuvent se comporter comme des fournisseurs de contenu et pour les utiliser il faut connaitre leur URI.

    Dans mon application je vais utiliser content://sms

    pour créer un objet de type uri

    ?Download download.txt
    1
    
    Uri LeSmsUri = Uri.parse("content://sms");

    Pour lire les informations de notre fournisseur de contenu j’utilise l’objet Cursor

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    
    private Cursor objCursor = null;
     
    objCursor= managedQuery(LeSmsUri ,
    null, 
    null,      
    null,       
    null);

    Ensuite avec les méthodes moveToFirst() et moveToNext() je lis ligne par ligne le contenu mes sms, j’affiche dans une listview le numéro de téléphone (-) le message;

    ?Download download.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    objCursor= managedQuery(LeSmsUri,
    null, 
    null,       
    null,      
    null);
    list = new ArrayList<String>(); //je cree ma list view pour affichage lire ce tuto
    if (objCursor.moveToFirst()) {
    do {
    String sms = objCursor.getString(objCursor.getColumnIndex("address")) +
    " - " + objCursor.getString(objCursor.getColumnIndex("body"));
    list.add(sms);
    } while (objCursor.moveToNext());
    }

    Résultat
    listesms2 Développement, utiliser les sms dans ses applications 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
    
    public class ListeSms extends ListActivity {
    private Cursor objCursor= null;
    private List<String> list = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //SMS URI
    Uri LeSmsUri = Uri.parse("content://sms");
    try {
    //Query to the contentProvider
    objCursor= managedQuery(LeSmsUri ,
    null, 
    null,      
    null,      
    null);
    list = new ArrayList<String>();  //je cree ma list view pour affichage lire ce tuto
    if (objCursor.moveToFirst()) {
    do {
    String sms = objCursor.getString(objCursor.getColumnIndex("address")) +
    " - " + objCursor.getString(objCursor.getColumnIndex("body"));
    list.add(sms);
    } while (objCursor.moveToNext());
    }
    }
    catch (Exception e) {
    Log.e("SMS", "Access list", e);
    }
    setListAdapter(
    new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, list));
    }
    }


    Guy

    Co-fondateur du site Android france, senior lead developper, passionné de bière et de cigare cubain

    Twitter Google+ 

  • 3 Commentaires pour ce billet

    1. 1 - Rico dit:

      bonjour,

      comment faire pour que les sms apparaissent l’un a la foi, je m’explique:
      je voudrai qu’il n’affiche que le premier et que chaque fois que j’appuie sur le bouton ‘bas’ il passe a la position suivante du curseur
      merci pour votre aide

    2. 2 - Guy dit:

      @Rico la solution la plus simple c’est de récupérer les sms dans un tableau et avec bouton incrémenter la position dans ton tableau pour afficher les valeurs dans tes textview par exemle

    3. 3 - asics magasin dit:

      Toutes les chaussures asics sont originales et directement de l usine.Pas cher chaussures Asics dans notre magasin en France sont 30-70% de remise et livraison gratuite.

  • Laissez un commentaire

  • Les Brèves