Android – Cours 5 – Notifications

Ce jour

  • Qu’est-ce qu’une notification
  • Principe
  • Exemple
  • Modifier une notification
  • Supprimer une notification

Qu’est-ce qu’une notification

  • Notifier l’utilisateur
    • une tâche est terminée
    • un message est arrivé
  • Donner à l’utilisateur des outils utilisables hors de l’activité
    • Contrôle de player musical
    • Barre de progression
  • Vos propres usages (à inventer)

Principe

  • On crée une notification avec un objet de type NotificationCompat.Builder
  • On utilise un objet NotificationManager, fourni par le système pour gérer les notifications (les afficher, etc.)

Exemple

Construire la notification

NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("Mes notifications de test")
.setContentText("Ma première notif!");

Exemple (suite)

Envoyer la notification avec le notification manager

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

mNotificationManager.notify(mNotificationId, mBuilder.build());

NB: attention à l’ID

Ajouter une action

  • Créer ou récupérer un Intent
  • L’inclure dans un PendingIntent
Intent rIntent=this.getIntent();

ou

Intent rIntent = new Intent(this, ResultActivity.class);
PendingIntent rPendingIntent =
PendingIntent.getActivity(
this, 0, rIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);

mBuilder.setContentIntent(rPendingIntent);

Modifier une notification

  • Récupérer le NotificationCompat.Builder
  • Lui appliquer les modifications
  • Ré-envoyer la notification avec le même ID
mBuilder
.setContentText("My new notification test")
.setNumber(++ccMsg);

mNotificationManager.notify(mNotificationId, mBuilder.build());

Supprimer une notification

  • Suppression manuelle par l’utilisateur (glisser)
  • Suppression de ttes les notifs par l’utilisateur (Effacer tout)
  • Si setAutoCancel() a été appelé : l’utilisateur touche la notif
  • Appel de la fonction cancel() avec l’ID de la notif
  • Appel de la fonction cancelAll()

More

  • On peut insérer des contrôles dans une notification
  • Style Big View
  • Android 8 introduit des canaux de notification (notification channels)
  • Notifications quand l’appli est en arrière plan
  • Notifications push (Google Cloud Messaging for Android)