13
2010
[Tutoriel Android] Partie 10 – Les notifications
Android intègre dans son cœur un système de notifications, celui-ci permet d’avertir l’utilisateur s’il reçoit une information importante. Vous pouvez rajouter une sonnerie et une vibration ainsi que le clignotement des leds disponibles sur le téléphone.
Mais, je préfère vous mettre en garde contre l’utilisation massive de ce système dans vos applications. Une notification doit rester un avertissement pour l’utilisateur, une information importante qu’il ne doit pas manquer (batterie faible, réception d’un sms, etc…), mais cela ne doit pas être utilisé pour dire un simple « Bonjour, l’application est lancée », alors utilisez ce système à bon escient.
Aperçu d’une notification
Si vous ne voyez pas ce qu’est une notification, je vais vous montrer un exemple :
Cet exemple montre une notification pour un sms, on y retrouve une icône, un titre, sa description et l’heure de la réception de la notification.
Création de notre propre notification
Nous allons commencer par créer un nouveau projet (1.6 ou autres), puis nous allons nous concentrer sur la création de la notification.
Tout d’abord, le système de notification se fait par le biais d’un service intégré à notre OS Mobile nommé « NOTIFICATION SERVICE ». Pour le récupérer, nous allons utiliser la méthode getSystemService et stocker le service dans un NotificationManager. Créons une variable de type privée, nommée notificationManager dans notre classe.
private NotificationManager notificationManager;
Puis, récupérons le service dans la méthode onCreate de notre activité :
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Désormais, nous pouvons accéder au système de notification d’Android, pour le moment rien de plus simple mais ça va se corser.
Nous allons rajouter un bouton à notre application que l’on va nommer « Notification », nous allons nous retrouver avec quelque chose comme-ceci :
private NotificationManager notificationManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
final Button boutonNoficiation = (Button) findViewById(R.id.boutonNotification);
boutonNoficiation.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Traitement de la notification
}
});
}
Nous allons utiliser la classe notification pour commencer :
Notification(int icon, CharSequence tickerText, long when)
Paramètres
- icon Image utilisée pour la notification (Drawable)
- tickerText Texte qui suivra l’icône dans la barre de notification lors de son déclenchement.
- when Quand est-ce que la notification s’est déclenchée.
Voici ce que l’on va mettre dans notre déclaration :
Notification notification = new Notification(R.drawable.icon, "Mon appli", System.currentTimeMillis());
Ce n’est pas tout, car actuellement nous ne pouvons pas l’afficher, il manque encore des choses importantes.
La plupart du temps une notification s’affiche, mais l’application n’est pas au premier plan, il est idéal de rediriger l’utilisateur vers l’activité concernée lorsqu’il clique sur la notification.
Imaginons que nous voulons passer un coup de téléphone avec cette notification, nous allons rajouter un Intent tout simple comme nous avons l’habitude de faire :
Intent intentNotification = new Intent(Intent.ACTION_VIEW,Uri.parse("tel:0102030405"));
Voilà notre intent est prêt pour ouvrir notre gestionnaire téléphonique.
Nous allons rajouter un PendingIntent (http://developer.android.com/reference/android/app/PendingIntent.html) qui transmettra notre notification au système.
PendingIntent pendingIntent = PendingIntent.getActivity(MonActivite.this, 0, intentNotification, 0);
Paramètres :
- Le contexte de l’application
- Le code de requête
- La notification à transmettre
- Et les drapeaux
Ensuite, nous allons rajouter des informations à notre notification grâce à la méthode setLatestEventInfo :
notification.setLatestEventInfo(MonActivite.this, "Ma notification", "Passer un appel", pendingIntent);
Paramètres :
- Le contexte de l’application
- Le titre de la notification
- La description
- Le PendingIntent
Et pour finir, on envoie tout cela à notre manager :
notificationManager.notify(1, notification);
Paramètres :
- L’identifiant de la notification
- La notification
Ce qui nous donne pour finir :
@Override
public void onClick(View v) {
Notification notification = new Notification(R.drawable.icon,
"Mon appli",
System.currentTimeMillis());
Intent intentNotification = new Intent(Intent.ACTION_VIEW,Uri.parse("tel:0102030405"));
PendingIntent pendingIntent = PendingIntent.getActivity(MonActivite.this, 0, intentNotification, 0);
notification.setLatestEventInfo(MonActivite.this, "Ma notification", "Passer un appel", pendingIntent);
notificationManager.notify(1, notification);
}
Lancez l’application et voyez par vous-même :
Quelques améliorations
Vous avez vu que si l’on clique sur la notification celle-ci ne disparait pas, c’est embêtant.
Nous allons y remédier comme ceci, par le biais des flags :
notification.flags |= Notification.FLAG_AUTO_CANCEL;
Notre notification disparaitra à sa sélection par l’utilisateur.
Pour les vibrations :
notification.defaults |= Notification.DEFAULT_VIBRATE;
Vous pouvez préciser la durée ou une suite de vibration en millisecondes :
notification.vibrate = new long[] {200,300,400,500};
Pour ce qui est de la notification à l’aide d’une sonnerie :
notification.defaults |= Notification.DEFAULT_SOUND;
Et pour finir les leds :
notification.defaults |= Notification.DEFAULT_LIGHTS;
Si vous désirez en savoir plus sur l’utilisation des Vibrations, sons, leds :
http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Conclusion
Nous avons fait le tour des notifications, à vous de jouer maintenant et n’oubliez pas il ne faut pas en abuser !
Articles relatifs
-
http://SiteWeb Pci130
-
http://www.agilicio.com Thomas
-
http://SiteWeb Jedix
-
Vivien-57
-
http://www.ace-art.fr/wordpress Acesyde
Survie
Catégories
- Andengine (5)
- Android (20)
- Application (1)
- Articles (1)
- Non classé (2)
- Programmation (30)
Nuage
Commentaires récents
- Paumé dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Acesyde dans [Tutoriel android] Partie 3 – Une petite intention ?
- paul dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Sne dans [Tutoriel android] Partie 3 – Une petite intention ?
- Vivien-57 dans [Tutoriel Android] Partie 13 – L’appareil photo
Archives
- janvier 2012 (2)
- novembre 2011 (1)
- octobre 2011 (3)
- juillet 2011 (3)
- juin 2011 (1)
- décembre 2010 (4)
- octobre 2010 (3)
- septembre 2010 (5)
- juillet 2010 (8)
- avril 2010 (6)

Un article de






