Android - Notificação Push

Uma notificação é uma mensagem que você pode exibir ao usuário fora da IU normal do seu aplicativo. Você pode criar suas próprias notificações no Android com muita facilidade.

Android fornece NotificationManagerclasse para este fim. Para usar esta classe, você precisa instanciar um objeto desta classe, solicitando ao sistema Android por meio degetSystemService() method. Sua sintaxe é fornecida abaixo -

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

Depois disso, você criará a Notificação por meio Notification classe e especificar seus atributos, como ícone, título e hora, etc. Sua sintaxe é fornecida abaixo -

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

A próxima coisa que você precisa fazer é criar um PendingIntentpassando o contexto e a intenção como um parâmetro. Ao fornecer um PendingIntent a outro aplicativo, você está concedendo a ele o direito de executar a operação especificada como se o outro aplicativo fosse você mesmo.

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

A última coisa que você precisa fazer é ligar setLatestEventInfométodo da classe Notificação e passar a intenção pendente junto com o assunto da notificação e os detalhes do corpo. Sua sintaxe é fornecida a seguir. E, finalmente, chame o método de notificação da classe NotificationManager.

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

Além do método de notificação, existem outros métodos disponíveis na classe NotificationManager. Eles estão listados abaixo -

Sr. Não Método e descrição
1

cancel(int id)

Este método cancela uma notificação mostrada anteriormente.

2

cancel(String tag, int id)

Este método também cancela uma notificação mostrada anteriormente.

3

cancelAll()

Este método cancela todas as notificações mostradas anteriormente.

4

notify(int id, Notification notification)

Este método publica uma notificação a ser exibida na barra de status.

5

notify(String tag, int id, Notification notification)

Este método também publica uma notificação a ser mostrada na barra de status.

Exemplo

O exemplo a seguir demonstra o uso da classe NotificationManager. Ele cria um aplicativo básico que permite criar uma notificação.

Para experimentar este exemplo, você precisa executá-lo em um dispositivo real ou em um emulador.

Passos Descrição
1 Você usará o Android Studio para criar um aplicativo Android em um packagecom.example.sairamkrishna.myapplication.
2 Modifique o arquivo src / MainActivity.java para adicionar o código de notificação.
3 Modifique o arquivo XML de layout res / layout / activity_main.xml e adicione qualquer componente GUI, se necessário.
4 Execute o aplicativo e escolha um dispositivo Android em execução, instale o aplicativo nele e verifique os resultados.

Aqui está o conteúdo de MainActivity.java.

No seguinte código abc indica o logotipo 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);
         }
      });
   }
}

Aqui está o conteúdo 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>

Aqui está o conteúdo 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>

Vamos tentar rodar nosso aplicativo. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no ícone Executar na barra de ferramentas. Antes de iniciar seu aplicativo, o Android Studio exibirá a janela a seguir para selecionar uma opção onde você deseja executar seu aplicativo Android.

Agora preencha o campo com o título, assunto e corpo. Isso foi mostrado abaixo na figura -

Agora clique no botão notificar e você verá uma notificação na barra de notificação superior. Foi mostrado abaixo -

Agora role para baixo na barra de notificação e veja a notificação. Isso foi mostrado abaixo na figura -