Android - Notification push

Une notification est un message que vous pouvez afficher à l'utilisateur en dehors de l'interface utilisateur normale de votre application. Vous pouvez créer vos propres notifications dans Android très facilement.

Android fournit NotificationManagerclasse à cet effet. Pour utiliser cette classe, vous devez instancier un objet de cette classe en demandant au système Android viagetSystemService() method. Sa syntaxe est donnée ci-dessous -

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

Après cela, vous créerez une notification via Notification classe et spécifiez ses attributs tels que l'icône, le titre et l'heure, etc. Sa syntaxe est donnée ci-dessous -

Notification notify = new Notification(android.R.drawable.stat_notify_more,title,System.currentTimeMillis());

La prochaine chose que vous devez faire est de créer un PendingIntenten passant le contexte et l'intention comme paramètre. En donnant un PendingIntent à une autre application, vous lui accordez le droit d'exécuter l'opération que vous avez spécifiée comme si l'autre application était vous-même.

PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(),0);

La dernière chose que vous devez faire est d'appeler setLatestEventInfométhode de la classe Notification et transmettez l'intention en attente avec l'objet de la notification et les détails du corps. Sa syntaxe est donnée ci-dessous. Et puis enfin appelez la méthode notify de la classe NotificationManager.

notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
NM.notify(0, notify);

Outre la méthode de notification, il existe d'autres méthodes disponibles dans la classe NotificationManager. Ils sont listés ci-dessous -

Sr. Non Méthode et description
1

cancel(int id)

Cette méthode annule une notification précédemment affichée.

2

cancel(String tag, int id)

Cette méthode annule également une notification précédemment affichée.

3

cancelAll()

Cette méthode annule toutes les notifications précédemment affichées.

4

notify(int id, Notification notification)

Cette méthode publie une notification à afficher dans la barre d'état.

5

notify(String tag, int id, Notification notification)

Cette méthode affiche également une notification à afficher dans la barre d'état.

Exemple

L'exemple ci-dessous illustre l'utilisation de la classe NotificationManager. Il crée une application de base qui vous permet de créer une notification.

Pour expérimenter cet exemple, vous devez l'exécuter sur un appareil réel ou dans un émulateur.

Pas La description
1 Vous utiliserez le studio Android pour créer une application Android sous un packagecom.example.sairamkrishna.myapplication.
2 Modifiez le fichier src / MainActivity.java pour ajouter un code de notification.
3 Modifiez le fichier XML de mise en page res / layout / activity_main.xml, ajoutez tout composant GUI si nécessaire.
4 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats.

Voici le contenu de MainActivity.java.

Dans le code suivant abc indique le logo de tutorialspoint.com
package com.example.sairamkrishna.myapplication;

import android.app.Notification;
import android.app.NotificationManager;

import android.content.Context;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends ActionBarActivity {
   EditText ed1,ed2,ed3;
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      ed3=(EditText)findViewById(R.id.editText3);
      Button b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String tittle=ed1.getText().toString().trim();
            String subject=ed2.getText().toString().trim();
            String body=ed3.getText().toString().trim();

            NotificationManager notif=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
            Notification notify=new Notification.Builder
               (getApplicationContext()).setContentTitle(tittle).setContentText(body).
               setContentTitle(subject).setSmallIcon(R.drawable.abc).build();
                
               notify.flags |= Notification.FLAG_AUTO_CANCEL;
               notif.notify(0, notify);
         }
      });
   }
}

Voici le contenu de activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Notification"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" />
      .
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_below="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2"
      android:layout_marginTop="52dp"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2"
      android:hint="Name" />
   
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:hint="Subject"
      android:layout_below="@+id/editText"
      android:layout_alignLeft="@+id/editText"
      android:layout_alignStart="@+id/editText"
      android:layout_alignRight="@+id/editText"
      android:layout_alignEnd="@+id/editText" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:inputType="textPersonName"
      android:ems="10"
      android:id="@+id/editText3"
      android:hint="Body"
      android:layout_below="@+id/editText2"
      android:layout_alignLeft="@+id/editText2"
      android:layout_alignStart="@+id/editText2"
      android:layout_alignRight="@+id/editText2"
      android:layout_alignEnd="@+id/editText2" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Notification"
      android:id="@+id/button"
      android:layout_marginTop="77dp"
      android:layout_below="@+id/editText3"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView" />

</RelativeLayout>

Voici le contenu de AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Essayons de lancer notre application. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Avant de démarrer votre application, Android studio affichera la fenêtre suivante pour sélectionner une option dans laquelle vous souhaitez exécuter votre application Android.

Remplissez maintenant le champ avec le titre, le sujet et le corps. Cela a été montré ci-dessous dans la figure -

Cliquez maintenant sur le bouton de notification et vous verrez une notification dans la barre de notification supérieure. Il a été montré ci-dessous -

Faites maintenant défiler la barre de notification et voyez la notification. Cela a été montré ci-dessous dans la figure -