Android 12.0 (API düzeyi 31) ve sonraki sürümlerde sistem, arama bildirimlerini diğer bildirim türlerinden ayırt etmek için CallStyle
bildirim şablonunu sağlar. Gelen veya devam eden arama bildirimleri
oluşturmak için bu şablonu kullanın. Şablon, arayan bilgilerini ve aramaları cevaplama ya da reddetme gibi gerekli işlemleri içeren geniş formatlı bildirimleri destekler.
Gelen ve devam eden çağrılar yüksek öncelikli etkinlikler olduğundan bu bildirimler bildirim gölgesinde en yüksek önceliği alır. Bu sıralama, sistemin bu öncelikli aramaları diğer cihazlara yönlendirmesine de olanak tanır.
CallStyle
bildirim şablonu aşağıdaki gerekli işlemleri içerir:
- Gelen aramalar için yanıtlayın veya Reddet'i seçin.
- Devam eden aramalar için kapatın.
- Arama filtreleme için cevapla veya kapat.
Bu stildeki işlemler, sistem tarafından uygun simgeler ve metinler otomatik olarak eklenen düğme olarak görünür. Düğmelerin manuel olarak etiketlenmesi desteklenmez. Bildirim tasarımı ilkeleri hakkında daha fazla bilgi için Bildirimler konusuna bakın.
Zorunlu işlemler, aşağıdaki bölümlerde hangupIntent
ve answerIntent
gibi amaç olarak iletilir. Bunların her biri, sistem tarafından
korunan bir jetona referanstır. Jeton, farklı uygulama ve işlemler arasında iletilebilen hafif bir nesnedir. Sistem, jetonun kullanım ömrünü yönetmek ve jetonu oluşturan uygulama artık çalışmıyor olsa bile PendingIntent
öğesinin kullanılabilir olmasını sağlamaktan sorumludur. Başka bir uygulamaya PendingIntent
verdiğinizde, reddetme veya yanıtlama gibi belirtilen işlemi gerçekleştirme izni vermiş olursunuz.
Bu izin, amacı oluşturan uygulama çalışmıyor olsa bile verilir. Daha fazla bilgi için PendingIntent
referans belgelerine göz atın.
Android 14'ten (API düzeyi 34) itibaren, arama bildirimlerini kapatılamaz olacak şekilde yapılandırabilirsiniz. Bunu yapmak için Notification.FLAG_ONGOING_EVENT
ile Notification.Builder#setOngoing(true)
arasındakiler ile CallStyle
bildirimlerini kullanın.
Aşağıda, CallStlye
bildirimiyle çeşitli yöntemlerin kullanılmasına ilişkin örnekler verilmiştir.
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 çağrı
Gelen bir arama için çağrı stili bildirim oluşturmak üzere forIncomingCall()
yöntemini kullanın.
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 çağrı
Devam eden bir çağrı için çağrı stili bildirim oluşturmak üzere forOngoingCall()
yöntemini kullanın.
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);
Aramaları filtreleme
Bir aramayı filtrelemek üzere bir çağrı stili bildirim oluşturmak için forScreeningCall()
yöntemini kullanın.
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ü arasında uyumluluk sağlayın
API 30 veya önceki sürümlerdeki CallStyle
bildirimlerini, API düzeyi 31 veya sonraki sürümlerde verilen üst sıralamayı atamak için bir ön plan hizmetiyle ilişkilendirin. Ayrıca, API 30 veya önceki sürümlerde CallStyle
bildirimleri, setColorized()
yöntemi kullanılarak bildirim renkli olarak işaretleyerek benzer bir sıralamaya ulaşabilir.
CallStyle
bildirimleriyle Telecom API'leri kullanın. Daha fazla bilgi için Telekomünikasyon çerçevesine genel bakış bölümüne bakın.