Cara Membuat Notifikasi Pada Android | Tutorial

Fitur pemberitahuan Android menyediakan cara bagi aplikasi untuk memberi tahu pengguna tentang suatu peristiwa ketika aplikasi aktif, tidak aktif atau tertutup. Notifikasi Android ditampilkan sebagai ikon di area notifikasi. Pengguna dapat melihat detail pemberitahuan dengan membuka laci notifikasi.
Notifikasi dapat berupa pesan teks sederhana atau rumit dengan tata letak untuk memungkinkan pengguna melakukan beberapa tindakan dengan memberikan tombol yang dapat ditindaklanjuti di tampilan notifikasi.
Membuat Notifikasi
Untuk membuat pemberitahuan di Android, pertama-tama Anda perlu menggunakan kelas NotificationCompat.Builder yang disediakan oleh bingkai pemberitahuan Android berfungsi. NotificationCompat.Builder memiliki metode bendera yang digunakan untuk menetapkan objek Pemberitahuan. Objek pemberitahuan setidaknya harus berisi ikon kecil, judul konten, dan informasi teks konten. Jika Anda membuat aplikasi untuk dijalankan di Android 8.0 (API level 26) dan lebih tinggi, Anda harus menambahkan ID saluran ke NotificationCompat.Builder, periksa bagian selanjutnya untuk informasi lebih lanjut tentang saluran notifikasi.
Kemudian menggunakan layanan sistem NotificationManager, Anda dapat membuat pemberitahuan muncul di area notifikasi agar pengguna dapat melihat dengan memanggil metode notify di atasnya.
contoh pemberitahuan android
 int mNotificationId = 23;
NotificationCompat.Builder mBuilder =
        new NotificationCompat.Builder(this, null)
                .setSmallIcon(R.drawable.zoftino)
                .setContentTitle("Z Latest Coupons")
                .setContentText("Latest coupons from top retailers.");
NotificationManager mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

mNotificationManager.notify(mNotificationId, mBuilder.build()); 
Saluran Notifikasi
Saluran notifikasi, diperkenalkan di Android 8.0 API level 26, memungkinkan Anda untuk mengkategorikan pemberitahuan dan memberikan kontrol kepada pengguna dalam hal pengaturan setiap saluran notifikasi. Jika aplikasi Anda ditargetkan untuk berjalan di API level 26 dan lebih tinggi, Anda harus menggunakan saluran agar notifikasi berfungsi.
Di bawah layar menunjukkan saluran notifikasi atau kategori aplikasi. Anda bisa mendapatkan layar ini dengan menekan lama pemberitahuan.
Contoh saluran notifikasi android
Untuk melihat semua kategori atau saluran milik aplikasi, klik semua kategori dan di bawah ini adalah layar dengan daftar saluran untuk aplikasi contoh kami.
Contoh saluran notifikasi android
Untuk melihat pengaturan saluran, klik saluran di layar yang menunjukkan saluran aplikasi. Seperti yang ditunjukkan pada layar di bawah ini, untuk setiap saluran, pengguna dapat mengubah pengaturan seperti penting, suara, lampu, getaran, tampil di layar kunci dan menimpa jangan ganggu. Setelah saluran dibuat, pengaturan ini tidak dapat diubah secara terprogram karena akan menggantikan pilihan pengguna.
Daftar aplikasi, saluran dan pengaturan saluran dapat diakses dari pengaturan juga.
pengaturan saluran notifikasi androidMembuat Notification Channel
Untuk membuat saluran notifikasi, pertama-tama Anda perlu instantiate objek NotificationChannel lewat id saluran, nama saluran, dan deskripsi saluran ke konstruktornya. Kemudian konfigurasikan NotificationChannel menggunakan berbagai metode yang ditawarkannya.
Di bawah ini adalah beberapa metode penting yang digunakan untuk mengkonfigurasi saluran notifikasi.
  • Melewati nilai boolean true to enableLights () metode membuat pemberitahuan lampu muncul ketika pemberitahuan dikirim ke saluran ini jika perangkat mendukung fitur tersebut.
  • Melewati nilai boolean true to enableVibration () metode membuat perangkat bergetar ketika pemberitahuan dikirim ke saluran.
  • Melewati nilai boolean true to setBypassDnd method membuat notifikasi ke saluran dengan mode do-not-disturb yang diatur ke prioritas saja.
  • Anda dapat mengatur prioritas pemberitahuan yang dikirim ke saluran menggunakan metode setImportance. Nilai yang mungkin adalah IMPORTANCE_UNSPECIFIED, IMPORTANCE_NONE, IMPORTANCE_MIN, IMPORTANCE_LOW, IMPORTANCE_DEFAULT, dan IMPORTANCE_HIGH.
  • Method setLightColor memungkinkan Anda mengatur warna terang.
  • Method setLockscreenVisibility menunjukkan apakah notifikasi ke saluran dapat dilihat di layar kunci. Nilai yang memungkinkan adalah Pemberitahuan.VISIBILITY_PRIVATE, Notification.VISIBILITY_PUBLIC, dan Notification.VISIBILITY_SECRET.
  • Melewati true ke metode setShowBadge membuat badge muncul di ikon peluncuran aplikasi saat notifikasi dikirim ke saluran.
  • Metode setGroup mengaitkan saluran ke grup saluran yang diteruskan ke saluran tersebut. Grup saluran memungkinkan Anda menggunakan nama saluran yang sama dalam aplikasi. Anda dapat membuat nama saluran yang sama dalam grup saluran yang berbeda. Untuk membuat grup saluran, Anda harus meneruskan id grup dan nama grup untuk membuat metode Unsur-UnsurNotificationChannelGroup pada objek NotificationManager.
Kode di bawah ini menunjukkan cara membuat saluran notifikasi.
 NotificationManager notificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

String channelId = "zlcb";
String channelName = "z latest cashback";
String channelDesc = "latest cashback from top retailers";

NotificationChannel channel =
        new NotificationChannel(channelId, channelName, 
                NotificationManager.IMPORTANCE_DEFAULT);
channel.setDescription(channelDesc);
channel.enableLights(true);
channel.setLightColor(Color.RED);
channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
channel.enableVibration(true);
channel.setVibrationPattern(new long[]{100, 200, 400, 400, 500, 400, 400, 200, 500});

notificationManager.createNotificationChannel(channel);
 
Anda dapat mengelola saluran notifikasi dan grup saluran dengan menggunakan metode getNotificationChannel, deleteNotificationChannel, getNotificationChannelGroups, dan deleteNotificationChannelGroup dari NotificationManager.
Tindakan Pemberitahuan
Anda dapat menambahkan tindakan ke pemberitahuan yang akan memulai aktivitas di aplikasi Anda. Anda perlu membuat kegiatan untuk setiap tindakan yang ditambahkan ke notifikasi. Untuk menambahkan tindakan ke konten notifikasi, yang berarti memulai aktivitas saat notifikasi diklik, aksi konten perlu ditambahkan ke pembuat notifikasi saat membuat notifikasi.
Untuk memulai aktivitas saat pengguna menghapus pemberitahuan, buat tujuan tertunda dan tambahkan ke pembuat notifikasi dengan menggunakan metode setDeleteIntent.
Intent intent = new Intent(this, Coupons.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
mBuilder.setContentIntent(pendingIntent);
Untuk menambahkan tindakan ke notifikasi, Anda dapat membuat NotificationCompat.Action objek, lalu tambahkan ke pembuat notification dengan memanggil metode addAction atau lewati ikon, judul, dan menunggu niat untuk pembuat notifikasi dengan memanggil metode addAction.
contoh pemberitahuan android
 Intent intent = new Intent(this, CouponsActivity.class);

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(CouponsActivity.class);
stackBuilder.addNextIntent(intent);

PendingIntent pendingIntent =
        stackBuilder.getPendingIntent(
                0,
                PendingIntent.FLAG_UPDATE_CURRENT
        );
NotificationCompat.Action.Builder actionBuilder =
        new NotificationCompat.Action.Builder(R.drawable.view,
                "View Offers", pendingIntent);
mBuilder.addAction(actionBuilder.build()); 

Tata Letak Diperluas atau Gaya Pemberitahuan

Notifikasi dapat ditampilkan dalam tata letak yang diperluas dengan membuat objek gaya yang berbeda seperti NotificationCompat.BigPictureStyle, NotificationCompat.BigTextStyle, NotificationCompat.DecoratedCustomViewStyle, NotificationCompat.InboxStyle, NotificationCompat.MediaStyle dan NotificationCompat.MessagingStyle dan menambahkan objek gaya ke pembuat notifikasi dengan memanggil setStyle.
Menampilkan Pemberitahuan dengan Banyak Teks Menggunakan BigTextStyle
Untuk memposting notifikasi dengan banyak teks, Anda dapat menggunakan BigTextStyle seperti yang ditunjukkan di bawah ini.
 NotificationCompat.BigTextStyle bigTextStyle = 
 new NotificationCompat.BigTextStyle();
bigTextStyle.bigText(offers);

builder.setStyle(bigTextStyle);
notificationManager.notify(notificationId, builder.build());

Gaya Inbox Pemberitahuan

Di bawah tangkapan layar menunjukkan pemberitahuan dalam gaya kotak masuk. Untuk membuat pemberitahuan gaya inbox, kita perlu menggunakan NotificationCompat.InboxStyle object dan panggil setBigContentTitle, setSummaryText dan addLine untuk mengkonfigurasinya. Kemudian tambahkan ke objek NotificationCompat.Builder dengan memanggil metode setStyle.
pemberitahuan android diperluas tata letak inboxstyle
NotificationCompat.InboxStyle inboxStyle =
new NotificationCompat.InboxStyle();

inboxStyle.setBigContentTitle("Deals from top electronics retailers");
inboxStyle.setSummaryText("Excellent deals on mobiles, laptops, desktops,"
  + "tablets and others.");
inboxStyle.addLine("Mobile 50% off");
inboxStyle.addLine("Laptops 20% off");
inboxStyle.addLine("Desktops 30% off");
inboxStyle.addLine("Tablets 22% off");
inboxStyle.addLine("Others 10% off");

builder.setStyle(inboxStyle);

mNotificationManager.notify(mNotificationId, builder.build());

Menampilkan Gambar dalam Notifikasi atau BigPictureStyle

Untuk menampilkan konten besar dengan gambar besar, Anda dapat menggunakan objek BigPictureStyle. Sebuah gambar dapat ditambahkan ke objek BigPictureStyle dengan memanggil metode bigPicture dan meneruskan bitmap ke dalamnya seperti yang ditunjukkan di bawah ini.
pemberitahuan android diperluas tata letak dengan gambar bigpicturestyle
 Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
        R.drawable.electronics);

NotificationCompat.BigPictureStyle bigPictureStyle =
        new NotificationCompat.BigPictureStyle();
bigPictureStyle.setSummaryText("Best deals in all categories of electronics");
bigPictureStyle.bigPicture(bitmap);
builder.setStyle(bigPictureStyle);

mNotificationManager.notify(mNotificationId, builder.build());

Pemberitahuan Gaya Perpesanan

Untuk membuat pemberitahuan dengan konten yang berisi pesan antara dua orang atau lebih, kita dapat menggunakan objek NotificationCompat.MessagingStyle dan menambahkan pesan ke dalamnya dengan menggunakan metode addMessage dan meneruskan pesan, waktu dan nama pengirim ke sana, seperti yang ditunjukkan di bawah ini.
pemberitahuan android diperluas tata letak messagestyle
 NotificationCompat.MessagingStyle messageStyle =
new NotificationCompat.MessagingStyle("Android Dev");

messageStyle.setConversationTitle("Notification Issue");
messageStyle.addMessage("Hi, we have an issue with notification.",
  System.currentTimeMillis(), null);
messageStyle.addMessage("What's the issue$", System.currentTimeMillis(),
  "Android Dev2");
messageStyle.addMessage("Notification functionality broke",
  System.currentTimeMillis(), null);
messageStyle.addMessage("When did it start happening, is root cause identified?",
  System.currentTimeMillis(), "Android Dev2");
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.drawable.zoftino)
.setContentTitle("Android Dev")
.setContentText("Dev issues.")
.setStyle(messageStyle);

NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(mNotificationId, builder.build());

Custom Notification

Anda dapat menentukan tata letak xml dan menggunakannya sebagai tata letak pemberitahuan menggunakan RemoteViews. Pertama mengembang tata letak menggunakan RemoteViews, mengatur nilai dan menambahkannya ke NotificationCompat.Builder dengan memanggil metode setContent (), kode di bawah ini menunjukkan cara membuat pemberitahuan kustom. Untuk membuat pemberitahuan khusus dengan tata letak yang diperluas, Anda harus menggunakan DecoratedCustomViewStyle.
tata letak kustom pemberitahuan kustom Android
 NotificationCompat.Builder mBuilder =
 new NotificationCompat.Builder(this, channelId)
 .setSmallIcon(R.drawable.zoftino);

RemoteViews notificationContent = new RemoteViews("com.zoftino.notification",
  R.layout.custom_notification);
notificationContent.setImageViewResource(R.id.store, R.drawable.amazon);
notificationContent.setTextViewText(R.id.coupon_one, "BIG SALE");

mBuilder.setContent(notificationContent);

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

mNotificationManager.notify(mNotificationId, mBuilder.build());
Di bawah ini adalah tata letak pemberitahuan kustom.
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_marginTop="2dp"
    android:layout_margin="2dp"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/store"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/coupon_one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="4dp"/>
</LinearLayout>

Notification Badges

Notification Badges, yang diperkenalkan di API level 26, menampilkan titik atau lencana di ikon peluncur aplikasi untuk menunjukkan bahwa pemberitahuan yang terkait dengan aplikasi ada dan memungkinkan pengguna untuk melihat pemberitahuan. Ikon peluncuran yang lama menampilkan pemberitahuan dalam menu yang memungkinkan pengguna untuk mengabaikan atau mengambil tindakan.
Fitur Notification Badges dapat dimatikan oleh pengguna menggunakan pengaturan. Secara terprogram, lencana dapat dimatikan ketika saluran dibuat menggunakan metode setShowBadge pada objek NotificationManager. Di bawah layar menunjukkan lencana pada ikon peluncuran aplikasi.
lencana notifikasi android
Di bawah layar menunjukkan menu tekan lama.
tanda pemberitahuan android panjang tekan menu

Praktik Terbaik untuk Implementasi Notifikasi

  1. Karena tidak semua fitur pemberitahuan tersedia di versi Android sebelumnya, buat pemberitahuan dengan NotificationCompat.Builder untuk mencapai kompatibilitas.
  2. Terapkan aktivitas untuk semua tindakan yang didefinisikan dalam pemberitahuan.
  3. Perbarui pemberitahuan sebelumnya dengan menggunakan id notifikasi daripada membuat pemberitahuan baru jika pemberitahuan untuk jenis acara yang sama dengan pemberitahuan yang dikeluarkan.
  4. Dalam situasi tertentu di mana pemberitahuan yang dikeluarkan tidak ditindaklanjuti oleh pengguna dan menjadi tidak relevan, Anda dapat menghapus pemberitahuan dengan memanggil membatalkan lewat id pemberitahuan.
  5. Merupakan praktik yang baik untuk menggabungkan pemberitahuan serupa, sebuah fitur yang diperkenalkan di API level 24.
  6. Jika pengguna memulai aktivitas dengan mengklik tindakan pada pemberitahuan, Anda harus memastikan bahwa navigasi belakang berfungsi dengan benar.

Memposting Pemberitahuan saat Aplikasi tidak Berjalan

Notifikasi dapat diposting ke layanan notifikasi ketika aplikasi Anda tidak aktif artinya ketika pengguna tidak menggunakan aplikasi atau aplikasi Anda ditutup. Untuk mengirim pemberitahuan ketika aplikasi Anda ditutup, Anda harus bergantung pada alarm.
Anda dapat mengatur alarm berulang dengan niat tertunda yang menyala sesuai pengaturan frekuensi yang dikonfigurasi. Niat yang tertunda, yang dikirimkan oleh alarm, akan memulai layanan yang dikirimkan oleh pengguna untuk mengirim pemberitahuan dan pemberitahuan juga dapat dikaitkan dengan maksud tertunda yang dipicu berdasarkan tindakan pengguna pada pemberitahuan dan dapat memulai aktivitas di aplikasi Anda untuk interaksi pengguna lebih lanjut.
Sekarang, mari kita lihat bagaimana menerapkan pemberitahuan posting dari aplikasi tertutup. Pertama, kita perlu mengidentifikasi kejadian ketika alarm dapat didaftarkan pada sistem. Kita dapat menggunakan acara atau siaran sistem untuk mendaftarkan alarm. Sistem Android mengirimkan siaran sekali setelah booting selesai. Kita dapat menggunakan sistem siaran ini untuk mendaftarkan alarm yang akan sering memecat maksud notifikasi. Untuk menerima siaran ACTION_BOOT_COMPLETED, Anda perlu meminta izin RECEIVE_BOOT_COMPLETED dari pengguna.
Registrasi alarm adalah satu aktivitas waktu. Setelah alarm disetel, alarm akan mulai mengirim maksud sesering mungkin sesuai konfigurasi. Di bawah ini adalah kode.

Penerima siaran memulai alarm saat menerima siaran lengkap boot dan mengirimkan maksud layanan
package com.zoftino.notifications;


import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MyAppBootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            AlarmManager alarmManger = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

            Intent nAlarmIntent = new Intent(context, NotificationSenderService.class);
            PendingIntent nAlarmPenginIntent = PendingIntent.getBroadcast(context, 0, nAlarmIntent, 0);

            alarmManger.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                    AlarmManager.INTERVAL_FIFTEEN_MINUTES,
                    AlarmManager.INTERVAL_FIFTEEN_MINUTES, nAlarmPenginIntent);
        }
    }
}

Layanan, yang dimulai dengan alarm, mengirim pemberitahuan

package com.zoftino.notifications;


import android.app.IntentService;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.NotificationCompat;

public class NotificationSenderService  extends IntentService {

    public NotificationSenderService() {
        super("NotificationSenderService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {

        Context context = getApplicationContext();
        NotificationCompat.Builder notificationBuilder =
                new NotificationCompat.Builder(this);

        notificationBuilder.setSmallIcon(R.drawable.notification);
        notificationBuilder.setContentTitle("Latest Coupon");
        notificationBuilder.setContentText("Get Upto 10% Off on Mobiles");

        Intent notificationClickIntent = new Intent(this, NotificationActionActivity.class);
        PendingIntent notificationPendingIntent = 
PendingIntent.getActivity(context, 0, notificationClickIntent, 0);

        notificationBuilder.setContentIntent(notificationPendingIntent);
        NotificationManager mNotificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        mNotificationManager.notify(1, notificationBuilder.build());
    }
}

Aktivitas yang dimulai ketika pengguna mengklik pemberitahuan

package com.zoftino.notifications;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class NotificationActionActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notification_action);
    }
}

AndoridManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.zoftino.notifications">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".MyAppBootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            </intent-filter>
        </receiver>
        <activity android:name=".NotificationActionActivity">
        </activity>
        <service android:name=".NotificationSenderService">
        </service>
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    </application>

</manifest>

0 Response to "Cara Membuat Notifikasi Pada Android | Tutorial"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel