Android - Push Bildirimi
Bildirim, uygulamanızın normal kullanıcı arayüzünün dışında kullanıcıya gösterebileceğiniz bir mesajdır. Android'de kendi bildirimlerinizi çok kolay bir şekilde oluşturabilirsiniz.
Android sağlar NotificationManagerbu amaç için sınıf. Bu sınıfı kullanmak için, android sistemi üzerinden talep ederek bu sınıfın bir nesnesini somutlaştırmanız gerekir.getSystemService() method. Söz dizimi aşağıda verilmiştir -
NotificationManager NM;
NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Bundan sonra, aracılığıyla Bildirim oluşturacaksınız Notification sınıfını seçin ve simge, başlık ve zaman gibi özelliklerini belirtin. Sözdizimi aşağıda verilmiştir -
Notification notify = new Notification(android.R.drawable.stat_notify_more,title,System.currentTimeMillis());
Yapmanız gereken bir sonraki şey, bir PendingIntentbağlamı ve amacı parametre olarak ileterek. Başka bir uygulamaya bir PendingIntent vererek, ona belirttiğiniz işlemi diğer uygulama kendinizmiş gibi gerçekleştirme hakkını vermiş olursunuz.
PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(),0);
Yapman gereken son şey aramak setLatestEventInfoBildirim sınıfının yöntemini ve bekleyen niyetin yanı sıra bildirim konusu ve gövde ayrıntılarını iletin. Söz dizimi aşağıda verilmiştir. Ve son olarak NotificationManager sınıfının notify yöntemini çağırın.
notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
NM.notify(0, notify);
Notify yönteminin yanı sıra, NotificationManager sınıfında kullanılabilen başka yöntemler de vardır. Aşağıda listelenmiştir -
Sr.No | Yöntem ve açıklama |
---|---|
1 | cancel(int id) Bu yöntem daha önce gösterilen bir bildirimi iptal eder. |
2 | cancel(String tag, int id) Bu yöntem ayrıca önceden gösterilen bir bildirimi de iptal eder. |
3 | cancelAll() Bu yöntem önceden gösterilen tüm bildirimleri iptal eder. |
4 | notify(int id, Notification notification) Bu yöntem, durum çubuğunda gösterilmek üzere bir bildirim gönderir. |
5 | notify(String tag, int id, Notification notification) Bu yöntem aynı zamanda durum çubuğunda gösterilmek üzere bir bildirim gönderin. |
Misal
Aşağıdaki örnek, NotificationManager sınıfının kullanımını gösterir. Bir bildirim oluşturmanıza izin veren temel bir uygulamayı kasalar.
Bu örneği denemek için, bunu gerçek bir cihazda veya bir emülatörde çalıştırmanız gerekir.
Adımlar | Açıklama |
---|---|
1 | Packagecom.example.sairamkrishna.myapplication altında bir Android uygulaması oluşturmak için Android stüdyosunu kullanacaksınız. |
2 | Bildirim kodu eklemek için src / MainActivity.java dosyasını değiştirin. |
3 | Düzen XML dosyasını değiştirin res / layout / activity_main.xml gerekirse herhangi bir GUI bileşeni ekleyin. |
4 | Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın. |
İşte içeriği MainActivity.java.
Aşağıdaki kodda abc tutorialspoint.com logosunu gösterir
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);
}
});
}
}
İşte içeriği 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>
İşte içeriği 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>
Uygulamamızı çalıştırmayı deneyelim. Uygulamayı Android stüdyosundan çalıştırmak için, projenizin etkinlik dosyalarından birini açın
Şimdi alanı başlık, konu ve gövde ile doldurun. Bu, aşağıdaki şekilde gösterilmiştir -
Şimdi bildir düğmesine tıklayın ve üst bildirim çubuğunda bir bildirim göreceksiniz. Aşağıda gösterilmiştir -
Şimdi bildirim çubuğunu aşağı kaydırın ve bildirimi görün. Bu, aşağıdaki şekilde gösterilmiştir -