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 bilgileri ve aramaları yanıtlama veya reddetme gibi gerekli işlemleri içeren büyük formatlı bildirimleri destekler.
Gelen ve devam eden aramalar yüksek öncelikli etkinlikler olduğundan bu bildirimler, bildirim gölgesinde en yüksek önceliği alır. Bu sıralama, sistemin öncelikli aramaları diğer cihazlara yönlendirmesini de sağlar.
CallStyle bildirim şablonu aşağıdaki zorunlu işlemleri içerir:
- Gelen aramalar için Yanıtla veya Reddet'e dokunun.
- Devam eden aramalar için aramayı sonlandırın.
- Arama tarama için Yanıtla veya Kapat'a dokunun.
Bu stildeki işlemler düğme olarak görünür. Sistem, uygun simgeleri ve metni otomatik olarak ekler. Düğmelerin manuel olarak etiketlenmesi desteklenmez. Bildirim tasarım ilkeleri hakkında daha fazla bilgi için Bildirimler konusuna bakın.
Gerekli işlemler, sonraki bölümlerde hangupIntent ve answerIntent gibi amaçlar olarak iletilir. Bunların her biri, sistem tarafından tutulan bir jetona referanstır. Jeton, farklı uygulamalar ve işlemler arasında iletilebilen basit bir nesnedir. Sistem, jetonun kullanım ömrünü yönetmekten 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, belirtilen işlemi (ör. reddetme veya yanıtlama) gerçekleştirmesine izin vermiş olursunuz.
Bu izin, amacı oluşturan uygulama çalışmıyor olsa bile verilir. Daha fazla bilgi için PendingIntent ile ilgili referans belgelerine bakın.
Android 14 (API düzeyi 34) sürümünden itibaren, arama bildirimlerini kapatılamayacak şekilde yapılandırabilirsiniz. Bunu yapmak için Notification.FLAG_ONGOING_EVENT ile Notification.Builder#setOngoing(true) arasındaki CallStyle bildirimlerini kullanın.
Aşağıda, CallStyle bildirimiyle çeşitli yöntemlerin kullanımına ilişkin örnekler verilmiştir.
// Create a new call, setting the user as the caller.
val incomingCaller = Person.Builder()
.setName("Jane Doe")
.setImportant(true)
.build()
Gelen arama
Gelen arama için arama stili bildirimi oluşturmak üzere forIncomingCall() yöntemini kullanın.
// 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)
Devam eden arama
Devam eden bir arama için arama stili bildirimi oluşturmak üzere forOngoingCall() yöntemini kullanın.
// 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)
Aramaları filtreleme
Bir aramayı filtrelemek için forScreeningCall() yöntemini kullanarak arama stili bildirimi oluşturun.
// 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)
Daha fazla Android sürümünde uyumluluk sağlar.
API sürümü 30 veya önceki sürümlerdeki CallStyle bildirimlerini, API seviyesi 31 veya sonraki sürümlerde verilen yüksek sıralamayı atamak için ön plan hizmetiyle ilişkilendirin. Ayrıca, setColorized() yöntemi kullanılarak bildirim renklendirilmiş olarak işaretlenirse API sürümü 30 veya önceki sürümlerdeki CallStyle bildirimleri de benzer bir sıralama elde edebilir.
CallStyle bildirimleriyle Telecom API'lerini kullanın. Daha fazla bilgi için Telekom çerçevesine genel bakış başlıklı makaleyi inceleyin.