Android - Notifica push
Una notifica è un messaggio che puoi visualizzare all'utente al di fuori della normale interfaccia utente dell'applicazione. Puoi creare le tue notifiche in Android molto facilmente.
Android fornisce NotificationManagerclasse per questo scopo. Per utilizzare questa classe, è necessario creare un'istanza di un oggetto di questa classe richiedendo al sistema Android tramitegetSystemService() method. La sua sintassi è data di seguito:
NotificationManager NM;
NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Dopodiché creerai Notification through Notification class e specificare i suoi attributi come icona, titolo e ora ecc. La sua sintassi è data di seguito:
Notification notify = new Notification(android.R.drawable.stat_notify_more,title,System.currentTimeMillis());
La prossima cosa che devi fare è creare un file PendingIntentpassando contesto e intento come parametro. Assegnando un PendingIntent a un'altra applicazione, le concedi il diritto di eseguire l'operazione che hai specificato come se l'altra applicazione fosse te stesso.
PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(),0);
L'ultima cosa che devi fare è chiamare setLatestEventInfometodo della classe di notifica e passare l'intento in sospeso insieme all'oggetto della notifica e ai dettagli del corpo. La sua sintassi è data di seguito. Infine, chiama il metodo di notifica della classe NotificationManager.
notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
NM.notify(0, notify);
Oltre al metodo di notifica, sono disponibili altri metodi nella classe NotificationManager. Sono elencati di seguito:
Suor n | Metodo e descrizione |
---|---|
1 | cancel(int id) Questo metodo annulla una notifica mostrata in precedenza. |
2 | cancel(String tag, int id) Questo metodo annulla anche una notifica mostrata in precedenza. |
3 | cancelAll() Questo metodo annulla tutte le notifiche mostrate in precedenza. |
4 | notify(int id, Notification notification) Questo metodo pubblica una notifica da mostrare nella barra di stato. |
5 | notify(String tag, int id, Notification notification) Questo metodo invia anche una notifica da mostrare nella barra di stato. |
Esempio
L'esempio seguente mostra l'uso della classe NotificationManager. Crea un'applicazione di base che ti consente di creare una notifica.
Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo reale o in un emulatore.
Passi | Descrizione |
---|---|
1 | Utilizzerai Android Studio per creare un'applicazione Android sotto packagecom.example.sairamkrishna.myapplication. |
2 | Modificare il file src / MainActivity.java per aggiungere il codice di notifica. |
3 | Modificare il file XML di layout res / layout / activity_main.xml aggiungere qualsiasi componente della GUI, se necessario. |
4 | Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati. |
Ecco il contenuto di MainActivity.java.
Nel codice seguente abc indica il logo di 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);
}
});
}
}
Ecco il contenuto di 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>
Ecco il contenuto di 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>
Proviamo a eseguire la nostra applicazione. Per eseguire l'app da Android Studio, apri uno dei file di attività del progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Prima di avviare l'applicazione, Android Studio visualizzerà la seguente finestra per selezionare un'opzione in cui si desidera eseguire l'applicazione Android.
Ora compila il campo con il titolo, l'oggetto e il corpo. Questo è stato mostrato di seguito nella figura:
Ora fai clic sul pulsante di notifica e vedrai una notifica nella barra di notifica in alto. È stato mostrato di seguito:
Ora scorri verso il basso la barra delle notifiche e visualizza la notifica. Questo è stato mostrato di seguito nella figura: