Android - powiadomienie push

Powiadomienie to komunikat, który można wyświetlić użytkownikowi poza normalnym interfejsem użytkownika aplikacji. Możesz bardzo łatwo tworzyć własne powiadomienia w Androidzie.

Android zapewnia NotificationManagerklasę w tym celu. Aby użyć tej klasy, musisz utworzyć wystąpienie obiektu tej klasy, wysyłając żądanie do systemu Android za pośrednictwemgetSystemService() method. Jego składnia jest podana poniżej -

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

Następnie utworzysz powiadomienie za pośrednictwem Notification klasę i określ jej atrybuty, takie jak ikona, tytuł i czas itp.Jego składnię podano poniżej -

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

Następną rzeczą, którą musisz zrobić, jest utworzenie pliku PendingIntentprzekazując kontekst i intencję jako parametr. Nadając PendingIntent innej aplikacji, dajesz jej prawo do wykonania operacji, którą określiłeś, tak jakbyś była tą inną aplikacją.

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

Ostatnia rzecz, jaką musisz zrobić, to zadzwonić setLatestEventInfometody klasy Notification i przekazać oczekujący zamiar wraz z tematem powiadomienia i szczegółami treści. Jego składnię podano poniżej. Na koniec wywołaj metodę notyfikacji klasy NotificationManager.

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

Oprócz metody notyfikacji w klasie NotificationManager dostępne są inne metody. Są one wymienione poniżej -

Sr.No Metoda i opis
1

cancel(int id)

Ta metoda umożliwia anulowanie wcześniej wyświetlanego powiadomienia.

2

cancel(String tag, int id)

Ta metoda umożliwia również anulowanie wcześniej wyświetlanego powiadomienia.

3

cancelAll()

Ta metoda anuluje wszystkie wcześniej wyświetlane powiadomienia.

4

notify(int id, Notification notification)

Ta metoda publikuje powiadomienie, które ma być wyświetlane na pasku stanu.

5

notify(String tag, int id, Notification notification)

Ta metoda również Opublikuj powiadomienie, które zostanie wyświetlone na pasku stanu.

Przykład

Poniższy przykład demonstruje użycie klasy NotificationManager. Tworzy podstawową aplikację, która umożliwia tworzenie powiadomień.

Aby eksperymentować z tym przykładem, musisz uruchomić to na rzeczywistym urządzeniu lub w emulatorze.

Kroki Opis
1 Użyjesz Android Studio do stworzenia aplikacji na Androida pod pakietem packagecom.example.sairamkrishna.myapplication.
2 Zmodyfikuj plik src / MainActivity.java, aby dodać kod powiadomienia.
3 Zmodyfikuj plik XML układu res / layout / activity_main.xml, dodaj dowolny komponent GUI, jeśli jest to wymagane.
4 Uruchom aplikację i wybierz działające urządzenie z systemem Android, zainstaluj na nim aplikację i sprawdź wyniki.

Oto treść MainActivity.java.

W poniższym kodzie abc wskazuje logo 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);
         }
      });
   }
}

Oto treść 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>

Oto treść 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>

Spróbujmy uruchomić naszą aplikację. Aby uruchomić aplikację ze studia Android, otwórz jeden z plików aktywności projektu i kliknij

ikonę Uruchom na pasku narzędzi. Przed uruchomieniem aplikacji, Android Studio wyświetli następujące okno, aby wybrać opcję, w której chcesz uruchomić aplikację Android.

Teraz wypełnij pole tytułem, tematem i treścią. Zostało to pokazane poniżej na rysunku -

Teraz kliknij przycisk powiadamiania, a zobaczysz powiadomienie na górnym pasku powiadomień. Zostało to pokazane poniżej -

Teraz przewiń pasek powiadomień w dół i zobacz powiadomienie. Zostało to pokazane poniżej na rysunku -