Aplikasi Anda mungkin perlu mendapatkan perhatian pengguna secara mendesak dalam situasi tertentu, seperti alarm yang sedang berlangsung atau panggilan masuk. Di aplikasi yang menargetkan perangkat yang menjalankan Android 9 (API level 28) atau yang lebih lama, Anda dapat menanganinya dengan meluncurkan aktivitas saat aplikasi berada di latar belakang. Dokumen ini menunjukkan cara mencapai perilaku ini di perangkat yang menjalankan Android 10 (API level 29) hingga Android 13 (API level 33).
Menambahkan izin POST_NOTIFICATIONS
Mulai Android 13, tambahkan baris berikut ke file AndroidManifest.xml:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
Setelah memilikinya, Anda dapat membuat saluran notifikasi.
Membuat saluran notifikasi
Buat saluran notifikasi untuk menampilkan notifikasi dengan benar dan memungkinkan pengguna mengelola notifikasi di setelan aplikasi. Untuk mengetahui informasi selengkapnya tentang saluran notifikasi, lihat Membuat dan mengelola saluran notifikasi.
Buat saluran notifikasi di metode Application class's
onCreate Anda:
Kotlin
class DACapp : Application() { override fun onCreate() { super.onCreate() val channel = NotificationChannel( CHANNEL_ID, "High priority notifications", NotificationManager.IMPORTANCE_HIGH ) val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(channel) } }
Saat pengguna menjalankan aplikasi Anda untuk pertama kalinya, mereka akan melihat sesuatu seperti gambar 1 di layar sistem Info aplikasi aplikasi Anda:
Mengelola izin notifikasi
Mulai Android 13, minta izin notifikasi sebelum Anda menampilkan notifikasi kepada pengguna.
Implementasi minimum terlihat seperti ini:
Kotlin
val permissionLauncher = rememberLauncherForActivityResult( contract = ActivityResultContracts.RequestPermission(), onResult = { hasNotificationPermission = it } ) ... Button( onClick = { if (!hasNotificationPermission) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { permissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) } } }, ) { Text(text = "Request permission") }
Jika perangkat Anda menjalankan Android 13, mengetuk tombol Request
permission akan memicu dialog yang ditampilkan pada gambar 2:
Jika pengguna menerima permintaan izin, bagian Info aplikasi aplikasi akan terlihat seperti gambar 3:
Membuat notifikasi prioritas tinggi
Saat membuat notifikasi, sertakan judul dan pesan yang deskriptif.
Contoh berikut berisi notifikasi:
Kotlin
private fun showNotification() { val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val notificationBuilder = NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.drawable.baseline_auto_awesome_24) .setContentTitle("HIGH PRIORITY") .setContentText("Check this dog puppy video NOW!") .setPriority(NotificationCompat.PRIORITY_HIGH) .setCategory(NotificationCompat.CATEGORY_RECOMMENDATION) notificationManager.notify(0, notificationBuilder.build()) }
Menampilkan notifikasi kepada pengguna
Memanggil fungsi showNotification() akan memicu notifikasi sebagai berikut:
Kotlin
Button(onClick = { showNotification() }) { Text(text = "Show notification") }
Notifikasi dalam contoh ini terlihat seperti gambar 4:
Notifikasi yang sedang berlangsung
Saat Anda menampilkan notifikasi kepada pengguna, pengguna dapat menerima atau menutup pemberitahuan atau pengingat aplikasi Anda. Misalnya, pengguna dapat menerima atau menolak panggilan telepon masuk.
Jika notifikasi Anda sedang aktif, seperti panggilan telepon masuk, kaitkan notifikasi tersebut dengan layanan latar depan. Cuplikan kode berikut menunjukkan cara menampilkan notifikasi yang terkait dengan layanan latar depan:
Kotlin
// Provide a unique integer for the "notificationId" of each notification. startForeground(notificationId, notification)
Java
// Provide a unique integer for the "notificationId" of each notification. startForeground(notificationId, notification);
Pertimbangkan untuk menggunakan Info Terbaru Langsung
Notifikasi yang sedang berlangsung dan mendesak dapat memperoleh manfaat dari visibilitas yang lebih tinggi. Pertimbangkan untuk mempromosikan notifikasi yang sedang berlangsung dan mendesak sebagai Info Terbaru Langsung untuk menampilkannya di berbagai platform UI sistem