Android - Push-Benachrichtigung

Eine Benachrichtigung ist eine Nachricht, die Sie dem Benutzer außerhalb der normalen Benutzeroberfläche Ihrer Anwendung anzeigen können. Sie können ganz einfach Ihre eigenen Benachrichtigungen in Android erstellen.

Android bietet NotificationManagerKlasse für diesen Zweck. Um diese Klasse verwenden zu können, müssen Sie ein Objekt dieser Klasse instanziieren, indem Sie das Android-System über anforderngetSystemService() method. Die Syntax ist unten angegeben -

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

Danach erstellen Sie eine Benachrichtigung durch Notification Klasse und geben Sie seine Attribute wie Symbol, Titel und Uhrzeit usw. an. Die Syntax ist unten angegeben -

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

Als nächstes müssen Sie eine erstellen PendingIntentdurch Übergeben von Kontext und Absicht als Parameter. Indem Sie einer anderen Anwendung einen PendingIntent zuweisen, gewähren Sie ihr das Recht, den von Ihnen angegebenen Vorgang so auszuführen, als ob die andere Anwendung Sie selbst wäre.

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

Das Letzte, was Sie tun müssen, ist anzurufen setLatestEventInfoMethode der Benachrichtigungsklasse und übergeben Sie die ausstehende Absicht zusammen mit dem Betreff und den Details der Benachrichtigung. Die Syntax ist unten angegeben. Rufen Sie schließlich die notify-Methode der NotificationManager-Klasse auf.

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

Neben der notify-Methode stehen in der NotificationManager-Klasse weitere Methoden zur Verfügung. Sie sind unten aufgeführt -

Sr.Nr. Methode & Beschreibung
1

cancel(int id)

Diese Methode bricht eine zuvor angezeigte Benachrichtigung ab.

2

cancel(String tag, int id)

Diese Methode bricht auch eine zuvor angezeigte Benachrichtigung ab.

3

cancelAll()

Diese Methode bricht alle zuvor angezeigten Benachrichtigungen ab.

4

notify(int id, Notification notification)

Diese Methode sendet eine Benachrichtigung, die in der Statusleiste angezeigt wird.

5

notify(String tag, int id, Notification notification)

Diese Methode veröffentlicht auch eine Benachrichtigung, die in der Statusleiste angezeigt wird.

Beispiel

Das folgende Beispiel zeigt die Verwendung der NotificationManager-Klasse. Es erstellt eine Basisanwendung, mit der Sie eine Benachrichtigung erstellen können.

Um mit diesem Beispiel zu experimentieren, müssen Sie dies auf einem tatsächlichen Gerät oder in einem Emulator ausführen.

Schritte Beschreibung
1 Sie werden Android Studio verwenden, um eine Android-Anwendung unter packagecom.example.sairamkrishna.myapplication zu erstellen.
2 Ändern Sie die Datei src / MainActivity.java, um Benachrichtigungscode hinzuzufügen.
3 Ändern Sie die Layout-XML-Datei res / layout / activity_main.xml und fügen Sie bei Bedarf eine beliebige GUI-Komponente hinzu.
4 Führen Sie die Anwendung aus und wählen Sie ein laufendes Android-Gerät aus. Installieren Sie die Anwendung darauf und überprüfen Sie die Ergebnisse.

Hier ist der Inhalt von MainActivity.java.

Im folgenden Code abc zeigt das Logo von tutorialspoint.com an
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);
         }
      });
   }
}

Hier ist der Inhalt von 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>

Hier ist der Inhalt von 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>

Versuchen wir, unsere Anwendung auszuführen. Um die App in Android Studio auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in der Symbolleiste auf das

Symbol Ausführen . Vor dem Starten Ihrer Anwendung zeigt Android Studio das folgende Fenster an, in dem Sie eine Option auswählen können, mit der Sie Ihre Android-Anwendung ausführen möchten.

Füllen Sie nun das Feld mit dem Titel, dem Thema und dem Text aus. Dies wurde unten in der Abbildung gezeigt -

Klicken Sie nun auf die Schaltfläche Benachrichtigen und Sie sehen eine Benachrichtigung in der oberen Benachrichtigungsleiste. Es wurde unten gezeigt -

Scrollen Sie nun in der Benachrichtigungsleiste nach unten und sehen Sie die Benachrichtigung. Dies wurde unten in der Abbildung gezeigt -