{"id":828,"date":"2018-01-31T23:58:02","date_gmt":"2018-01-31T22:58:02","guid":{"rendered":"http:\/\/chezdom.net\/etu\/?page_id=828"},"modified":"2018-02-01T00:00:49","modified_gmt":"2018-01-31T23:00:49","slug":"android-cours-5-notifications","status":"publish","type":"page","link":"https:\/\/chezdom.net\/etu\/android-cours-5-notifications\/","title":{"rendered":"Android &#8211; Cours 5 &#8211; Notifications"},"content":{"rendered":"<h2>Ce jour<\/h2>\n<ul>\n<li>Qu&rsquo;est-ce qu&rsquo;une notification<\/li>\n<li>Principe<\/li>\n<li>Exemple<\/li>\n<li>Modifier une notification<\/li>\n<li>Supprimer une notification<\/li>\n<\/ul>\n<h2>Qu&rsquo;est-ce qu&rsquo;une notification<\/h2>\n<ul>\n<li>Notifier l&rsquo;utilisateur\n<ul>\n<li>une t\u00e2che est termin\u00e9e<\/li>\n<li>un message est arriv\u00e9<\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<\/li>\n<li>Donner \u00e0 l&rsquo;utilisateur des outils utilisables hors de l&rsquo;activit\u00e9\n<ul>\n<li>Contr\u00f4le de player musical<\/li>\n<li>Barre de progression<\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<\/li>\n<li><em>Vos propres usages<\/em> (\u00e0 inventer)<\/li>\n<\/ul>\n<h2>Principe<\/h2>\n<ul>\n<li>On cr\u00e9e une notification avec un objet de type <code>NotificationCompat.Builder<\/code><\/li>\n<li>On utilise un objet <code>NotificationManager<\/code>, fourni par le syst\u00e8me pour g\u00e9rer les notifications (les afficher, <em>etc.<\/em>)<\/li>\n<\/ul>\n<h2>Exemple<\/h2>\n<p>Construire la notification<\/p>\n<pre class='brush:  java; gutter: true'>\nNotificationCompat.Builder mBuilder =\nnew NotificationCompat.Builder(this)\n.setSmallIcon(R.drawable.notification_icon)\n.setContentTitle(&quot;Mes notifications de test&quot;)\n.setContentText(&quot;Ma premi\u00e8re notif!&quot;);\n<\/pre>\n<h2>Exemple (suite)<\/h2>\n<p>Envoyer la notification avec le notification manager<\/p>\n<pre class='brush:  java; gutter: true'>\nNotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);\n\nmNotificationManager.notify(mNotificationId, mBuilder.build());\n<\/pre>\n<p>NB: attention \u00e0 l&rsquo;ID<\/p>\n<h2>Ajouter une action<\/h2>\n<ul>\n<li>Cr\u00e9er ou r\u00e9cup\u00e9rer un Intent<\/li>\n<li>L&rsquo;inclure dans un PendingIntent<\/li>\n<\/ul>\n<pre class='brush:  java; gutter: true'>\nIntent rIntent=this.getIntent();\n<\/pre>\n<p>ou<\/p>\n<pre class='brush:  java; gutter: true'>\nIntent rIntent = new Intent(this, ResultActivity.class);\n<\/pre>\n<pre class='brush:  java; gutter: true; first-line: 2'>\nPendingIntent rPendingIntent =\nPendingIntent.getActivity(\nthis, 0, rIntent,\nPendingIntent.FLAG_UPDATE_CURRENT\n);\n\nmBuilder.setContentIntent(rPendingIntent);\n<\/pre>\n<h2>Modifier une notification<\/h2>\n<ul>\n<li>R\u00e9cup\u00e9rer le <code>NotificationCompat.Builder<\/code><\/li>\n<li>Lui appliquer les modifications<\/li>\n<li>R\u00e9-envoyer la notification avec le m\u00eame ID<\/li>\n<\/ul>\n<pre class='brush:  java; gutter: true'>\nmBuilder\n.setContentText(&quot;My new notification test&quot;)\n.setNumber(++ccMsg);\n\nmNotificationManager.notify(mNotificationId, mBuilder.build());\n<\/pre>\n<h2>Supprimer une notification<\/h2>\n<ul>\n<li>Suppression manuelle par l&rsquo;utilisateur (glisser)<\/li>\n<li>Suppression de ttes les notifs par l&rsquo;utilisateur (Effacer tout)<\/li>\n<li>Si <code>setAutoCancel()<\/code> a \u00e9t\u00e9 appel\u00e9 : l&rsquo;utilisateur touche la notif<\/li>\n<li>Appel de la fonction <code>cancel()<\/code> avec l&rsquo;ID de la notif<\/li>\n<li>Appel de la fonction <code>cancelAll()<\/code><\/li>\n<\/ul>\n<h2>More<\/h2>\n<ul>\n<li>On peut ins\u00e9rer des contr\u00f4les dans une notification<\/li>\n<li>Style <em>Big View<\/em><\/li>\n<li>Android 8 introduit des canaux de notification (<em>notification channels<\/em>)<\/li>\n<li>Notifications quand l&rsquo;appli est en arri\u00e8re plan<\/li>\n<li>Notifications push (<em>Google Cloud Messaging for Android<\/em>)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ce jour Qu&rsquo;est-ce qu&rsquo;une notification Principe Exemple Modifier une notification Supprimer une notification Qu&rsquo;est-ce qu&rsquo;une notification Notifier l&rsquo;utilisateur une t\u00e2che est termin\u00e9e un message est arriv\u00e9 &#8230; Donner \u00e0 l&rsquo;utilisateur des outils utilisables hors de l&rsquo;activit\u00e9 Contr\u00f4le de player musical<span class=\"ellipsis\">&hellip;<\/span> <span class=\"read-more\"><a href=\"https:\/\/chezdom.net\/etu\/android-cours-5-notifications\/\">Lire la suite &#8250;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-828","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9qu1A-dm","_links":{"self":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/comments?post=828"}],"version-history":[{"count":3,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/828\/revisions"}],"predecessor-version":[{"id":831,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/828\/revisions\/831"}],"wp:attachment":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/media?parent=828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}