Di Android 12.0 (API level 31) dan yang lebih baru, sistem menyediakan
template notifikasi CallStyle
untuk membedakan notifikasi panggilan dengan
jenis notifikasi lainnya. Gunakan template ini untuk membuat notifikasi panggilan masuk atau
yang sedang berlangsung. Template ini mendukung notifikasi format besar
yang menyertakan informasi penelepon dan tindakan yang diperlukan seperti menjawab atau
menolak panggilan.
Karena panggilan masuk dan sedang berlangsung merupakan peristiwa berprioritas tinggi, notifikasi ini menerima prioritas utama di menu notifikasi. Peringkat ini juga memungkinkan sistem untuk meneruskan panggilan yang diprioritaskan ini ke perangkat lain.
Template notifikasi CallStyle
menyertakan tindakan yang diperlukan berikut:
- Jawab atau Tolak untuk panggilan masuk.
- Menutup panggilan telepon untuk panggilan yang sedang berlangsung.
- Jawab atau Tutup untuk penyaringan panggilan.
Tindakan dengan gaya ini muncul sebagai tombol, dan sistem akan otomatis menambahkan ikon dan teks yang sesuai. Pelabelan tombol secara manual tidak didukung. Untuk informasi selengkapnya tentang prinsip-prinsip desain notifikasi, lihat Notifikasi.
Tindakan yang diperlukan akan diteruskan sebagai intent, seperti hangupIntent
dan
answerIntent
di bagian berikut. Masing-masing adalah referensi ke
token yang dikelola oleh sistem. Token adalah objek ringan yang dapat diteruskan antara berbagai aplikasi dan proses. Sistem bertanggung jawab untuk mengelola masa pakai token dan memastikan bahwa PendingIntent
dapat digunakan meskipun aplikasi yang membuatnya tidak lagi berjalan. Saat memberi aplikasi lain PendingIntent
, Anda memberinya
izin untuk menjalankan operasi yang ditentukan, seperti menolak atau menjawab.
Izin ini diberikan meskipun aplikasi yang membuat intent
saat ini tidak berjalan. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi
untuk PendingIntent
.
Mulai Android 14 (API level 34), Anda dapat mengonfigurasi notifikasi panggilan
agar tidak dapat ditutup. Untuk melakukannya, gunakan notifikasi CallStyle
dengan
Notification.FLAG_ONGOING_EVENT
hingga
Notification.Builder#setOngoing(true)
.
Berikut adalah contoh penggunaan berbagai metode dengan notifikasi
CallStlye
.
Kotlin
// Create a new call, setting the user as the caller. val incomingCaller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as the caller. Person incomingCaller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
Panggilan masuk
Gunakan metode forIncomingCall()
untuk membuat notifikasi gaya panggilan untuk
panggilan masuk.
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller);
Panggilan sedang berlangsung
Gunakan metode forOngoingCall()
untuk membuat notifikasi gaya panggilan untuk
panggilan yang sedang berlangsung.
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller);
Saring panggilan
Gunakan metode forScreeningCall()
untuk membuat notifikasi gaya panggilan guna
menyaring panggilan.
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
// Create a call style notification for screening a call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
Menyediakan kompatibilitas di lebih banyak versi Android
Mengaitkan notifikasi CallStyle
di API versi 30 atau yang lebih lama dengan
layanan latar depan untuk menetapkan peringkat tinggi yang diberikan dalam API
level 31 atau yang lebih baru. Selain itu, notifikasi CallStyle
di API versi 30
atau yang lebih lama dapat mencapai peringkat serupa dengan menandai notifikasi sebagai
diwarnai, menggunakan metode setColorized()
.
Gunakan Telecom API dengan notifikasi CallStyle
. Untuk mengetahui informasi selengkapnya, lihat
Ringkasan framework telekomunikasi.