Telefon araması uygulamaları için arama stili bildirim oluşturma

Android 12.0 (API düzeyi 31) ve sonraki sürümlerde sistem, Arama bildirimlerini ayırt etmek için CallStyle bildirim şablonu diğer bildirim türlerini görebilirsiniz. Bu şablonu kullanarak gelen veya giden ya da devam eden arama bildirimleri. Şablon, büyük biçimli bildirimleri destekler arayan bilgileri ve yanıtlama veya cevaplama gibi gerekli işlemleri içeren çağrıları reddetmektedir.

Gelen ve devam eden aramalar yüksek öncelikli etkinlikler olduğundan, bu bildirimler bildirim gölgesinde en önemli önceliği alın. Bu sıralama aynı zamanda aramaları diğer cihazlara yönlendirmenizi sağlayacak bir sistem oluşturabilirsiniz.

CallStyle bildirim şablonu, aşağıdaki gerekli işlemleri içerir:

  • Gelen aramaları yanıtlayın veya reddedin.
  • Devam eden aramalar için telefonu kapatın.
  • Arama filtreleme için yanıtlayın veya kapatın.

Bu stildeki işlemler düğme olarak görünür ve sistem, uygun simgeler ve metinler kullanabilirsiniz. Düğmelerin manuel olarak etiketlenmesi desteklenmiyor. Bildirim tasarımı ilkeleri hakkında daha fazla bilgi için Bildirimler.

Etiketli düğmelere sahip arama stili bildirimleri
Şekil 1. Gelen ve devam eden aramalar için CallStyle şablonu.

Gerekli işlemler hangupIntent ve answerIntent yükleyin. Bunların her biri retrospektif toplantısına sistem tarafından sağlanan kod. Jeton, değerin kullanıldığı basit bir nesnedir reklamlar farklı uygulamalar ve işlemler arasında iletilebilir. Sistem jetonunun ömrünü yönetmekten ve PendingIntent, oluşturan uygulama artık olmasa bile kullanılabilir çalışıyor. Başka bir uygulamaya PendingIntent verdiğinizde belirtilen işlemi (ör. reddetme veya yanıtlama) icra etmesi. Amacı oluşturan uygulama olsa bile bu izin verilir şu anda çalışmıyor. Daha fazla bilgi için referans belgelerine bakın PendingIntent için.

Android 14'ten (API düzeyi 34) itibaren arama bildirimlerini yapılandırabilirsiniz gerektiğini lütfen unutmayın. Bunu yapmak için CallStyle bildirimlerini şu özellikte kullanın: Notification.FLAG_ONGOING_EVENT - Notification.Builder#setOngoing(true).

Aşağıda, CallStyle ile çeşitli yöntemlerin kullanımına ilişkin örnekler verilmiştir: bildirimi görürsünüz.

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();

Gelen arama

forIncomingCall() yöntemini kullanarak bir gelen arama.

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);

Devam eden arama

forOngoingCall() yöntemini kullanarak bir devam eden çağrı.

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);

Arama filtreleme

Şunun için çağrı stilinde bildirim oluşturmak için forScreeningCall() yöntemini kullanın: filtrelemeye devam edebilirsiniz.

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);

Daha fazla Android sürümü ile uyumluluk sağlayın

API 30 veya önceki sürümlerde CallStyle bildirimlerini bir ön plan hizmetini kullanarak onlara API'de kendilerine verilen yüksek sıralamayı atayabilirler. tercih edebilirsiniz. Ayrıca, API sürüm 30'da CallStyle bildirimleri veya daha eski bir tarih, bildirimi setColorized() yöntemiyle renklendirilir.

CallStyle bildirimleriyle Telekom API'lerini kullanın. Daha fazla bilgi için bkz. Telekomünikasyon çerçevesine genel bakış