Utiliser les notifications pour avertir l'utilisateur
Date de publication : 10 février 2011.
Par
Axon de Tuto Mobile (Tuto Mobile)
Après un long petit moment d'absence me revoilà avec un nouveau tutoriel Android. Un des points fort des téléphones Android par rapport à l'iPhone est son système de notifications. Nous allons donc apprendre à créer une notification qui apparaitra en faisant vibrer votre téléphone. C'est très utile pour avertir l'utilisateur (par exemple pour nous prévenir que l'on reçoit un message, une notification se déclenche).
I. Introduction
Donc pour commencer, créez votre projet Android (pour moi comme à mon habitude j'utilise la version 1.6 d'Android) et nous allons tout de suite créer la mini interface graphique de notre application. Elle se compose simplement de deux boutons. Voici à quoi ressemblera notre application une fois terminée:
Notification Android
II. Code XML
Bon je me demande si je dois vous donner le code pour une si simple interface graphique? Allez pour les plus faignants, il n'y aura qu'un petit copier/coller à faire, voici le code :
< ?xml version= " 1.0 " encoding= " utf-8 " ?>
< LinearLayout xmlns:android= " http://schemas.android.com/apk/res/android "
android :orientation= " vertical "
android :layout_width= " fill_parent "
android :layout_height= " fill_parent "
android :gravity= " center "
>
< Button
android :id= " @+id/CreateNotif "
android :layout_width= " fill_parent "
android :layout_height= " wrap_content "
android :text= " Créer une notification "
/ >
< Button
android :id= " @+id/ClearNotif "
android :layout_width= " fill_parent "
android :layout_height= " wrap_content "
android :text= " Supprimer la notification "
/ >
< / LinearLayout>
|
III. Code JAVA
Nous allons travailler avec deux Activity. L'Activity principale sera celle contenant nos deux boutons et qui nous permettra de créer ceux pourquoi nous sommes ici, c'est à dire une notification. Le bouton « Créer une notification » créera donc une notification et le bouton « Supprimer la notification » la supprimera. Bon ça, je pense que vous l'auriez trouvé sans moi... Mais alors pourquoi avoir besoin d'une autre Activity ? Et bien tout simplement lorsque l'on cliquera sur notre notification apparaissant dans la liste des notifications, cela nous emmènera vers un nouvel écran de notre application, tout en supprimant automatiquement la notification qui a été créée.
Allez fini le blabla voici le code commenté de l'Activity principale :
package com.tutomobile.android.notification;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Tutoriel16_Android extends Activity {
public static final int ID_NOTIFICATION = 1988 ;
@ Override
public void onCreate (Bundle savedInstanceState) {
super .onCreate (savedInstanceState);
setContentView (R.layout.main);
Button boutonCreateNotif = (Button) findViewById (R.id.CreateNotif);
Button boutonClearNotif = (Button) findViewById (R.id.ClearNotif);
boutonCreateNotif.setOnClickListener (new OnClickListener () {
public void onClick (View v) {
createNotify ();
}
} );
boutonClearNotif.setOnClickListener (new OnClickListener () {
public void onClick (View v) {
cancelNotify ();
}
} );
}
private void createNotify (){
NotificationManager notificationManager = (NotificationManager)getSystemService (Context.NOTIFICATION_SERVICE);
Notification notification = new Notification (R.drawable.icon, " Toc toc, c'est une notification ! " , System.currentTimeMillis ());
PendingIntent pendingIntent = PendingIntent.getActivity (this , 0 , new Intent (this , ActivityNotification.class ), 0 );
String titreNotification = " C'est moi la notification ! " ;
String texteNotification = " Je suis une belle notification... " ;
notification.setLatestEventInfo (this , titreNotification, texteNotification, pendingIntent);
notification.vibrate = new long [] { 0 ,200 ,100 ,200 ,100 ,200 } ;
notificationManager.notify (ID_NOTIFICATION, notification);
}
private void cancelNotify (){
NotificationManager notificationManager = (NotificationManager)getSystemService (Context.NOTIFICATION_SERVICE);
notificationManager.cancel (ID_NOTIFICATION);
}
}
|
Créez ensuite une nouvelle classe Java, qui sera notre seconde Activity. Moi je l'ai appelé ActivityNotification. Le code de cette Activity est très simple mais tout de même commenté, le voici :
package com.tutomobile.android.notification;
import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;
public class ActivityNotification extends Activity {
@ Override
public void onCreate (Bundle savedInstanceState) {
super .onCreate (savedInstanceState);
TextView txt= new TextView (this );
txt.setText (" Voici à l'Activity qui apparait lorsque l'on clique sur la notification ! " );
setContentView (txt);
NotificationManager notificationManager = (NotificationManager)getSystemService (Context.NOTIFICATION_SERVICE);
notificationManager.cancel (Tutoriel16_Android.ID_NOTIFICATION);
}
}
|
Une fois tout ceci fait il ne reste plus qu'à faire une petite modification dans le fichier AndroidManifest.xml.
IV. AndroidManifest.xml
Il n'y a que deux petites choses à rajouter, l'autorisation pour faire vibrer le téléphone, ainsi que la déclaration de la nouvelle Activity que l'on a créé.
Il faut donc ajouter ceci entre les balises <application> déjà existantes :
< activity android:name= " .ActivityNotification "
android :label= " @string/app_name " / >
|
Puis ajouter ceci juste avant la balise fermante </manifest> déjà existante également :
< uses- permission android:name= " android.permission.VIBRATE " / >
|
Voilà c'est terminé. Normalement si vous lancez votre application pour pourrez cliquer sur le bouton « Créer une notification » vous verrez apparaître la notification dans la barre de notification en même temps que votre téléphone vibrera. Si vous faîtes glisser la barre de notification vers le bas pour avoir une vue plus détaillée des notifications en cours, lorsque vous cliquerez sur votre notification, la nouvelle Activity va s'afficher et la notification aura disparu. Enfin bon je vous laisse jouer et découvrir par vous-même, ce n'est pas très difficile.
Android Notification
Android Notification
Android Notification
V. Remerciements
Je tiens à remercier tout particulièrement
MrDuchnok qui a mis ce tutoriel au format Developpez.com.
Merci également à
Mahefasoa d'avoir pris le temps de le relire et de le corriger.
VI. Lien
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ©
2011 Axon de Tuto Mobile. Aucune reproduction, même partielle, ne peut être
faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.