Di Android 12.0 (API level 31) dan yang lebih baru, sistem menyediakan
Template notifikasi CallStyle
untuk membedakan notifikasi panggilan dari
jenis notifikasi lainnya. Gunakan {i>template<i} ini untuk membuat
notifikasi panggilan yang sedang berlangsung. Template mendukung notifikasi berformat besar
yang mencakup informasi penelepon dan tindakan yang diperlukan, seperti menjawab atau
menolak panggilan.
Karena panggilan masuk dan sedang berlangsung adalah acara berprioritas tinggi, notifikasi ini menerima prioritas utama di bayangan notifikasi. Peringkat ini juga memungkinkan untuk meneruskan panggilan yang diprioritaskan ini ke perangkat lain.
Template notifikasi CallStyle
menyertakan tindakan yang diperlukan berikut ini:
- Jawab atau Tolak untuk panggilan masuk.
- Tutup untuk panggilan yang sedang berlangsung.
- Jawab atau Tutup untuk penyaringan panggilan.
Tindakan dalam gaya ini muncul sebagai tombol, dan sistem secara 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 diteruskan sebagai intent, seperti hangupIntent
dan
answerIntent
di bagian berikut. Masing-masing {i>tool<i} ini merupakan referensi ke
token yang dikelola oleh sistem. Token tersebut adalah objek ringan yang
dapat diteruskan di antara berbagai aplikasi dan proses. Sistem ini adalah
bertanggung jawab untuk mengelola masa pakai token dan memastikan bahwa
PendingIntent
dapat digunakan meskipun aplikasi yang membuatnya tidak lagi
sedang berjalan. Jika Anda memberi aplikasi lain PendingIntent
, Anda memberi
izin untuk melakukan operasi tertentu, seperti menolak atau menjawab.
Izin ini diberikan meskipun aplikasi yang membuat intent
sedang tidak berjalan. Untuk informasi selengkapnya, lihat dokumentasi referensi
untuk PendingIntent
.
Mulai Android 14 (level API 34), Anda dapat mengonfigurasi notifikasi panggilan
tidak dapat ditutup. Untuk melakukannya, gunakan notifikasi CallStyle
dengan
Notification.FLAG_ONGOING_EVENT
sampai
Notification.Builder#setOngoing(true)
.
Berikut adalah contoh penggunaan berbagai metode dengan CallStyle
notifikasi.
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
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);
Menyaring panggilan
Gunakan metode forScreeningCall()
untuk membuat notifikasi gaya panggilan untuk
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
Kaitkan notifikasi CallStyle
di API versi 30 atau sebelumnya dengan
layanan latar depan agar dapat menetapkan rating tinggi yang diberikan di API
level 31 atau yang lebih tinggi. Selain itu, notifikasi CallStyle
di API versi 30
atau sebelumnya dapat mencapai peringkat serupa dengan menandai notifikasi sebagai
diwarnai, menggunakan metode setColorized()
.
Gunakan Telecom API dengan notifikasi CallStyle
. Untuk informasi selengkapnya, lihat
Ringkasan framework telekomunikasi.