Medya uygulamasına bildirim ekleme

Ses veya videoyu işleyen bir medya uygulaması geliştirirken doğru bildirimler ve bildirim kanallarına ekleyebilirsiniz. Bu bildirimlerin şu değerli özelliklere sahip olmasını sağlar:

  • Bildirim önceliğine sahip
  • Kapatılamaz
  • Zil sesleri için ses özelliklerini kullanma

NotificationChannel.Builder kullanarak iki bildirim kanalı oluşturun: bunlardan biri gelen aramalar, diğeri ise etkin aramalar için kullanılır.

internal companion object {
    const val TELECOM_NOTIFICATION_ID = 200
    const val TELECOM_NOTIFICATION_ACTION = "telecom_action"
    const val TELECOM_NOTIFICATION_INCOMING_CHANNEL_ID = "telecom_incoming_channel"
    const val TELECOM_NOTIFICATION_ONGOING_CHANNEL_ID = "telecom_ongoing_channel"

    private val ringToneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE)
}

Bildirimi her yerde görüntüleyebilmek ve zil sesi kullanmayı tercih ederseniz gelen bildirim kanalının önemini yüksek olarak ayarlayın.

val incomingChannel = NotificationChannelCompat.Builder(
        TELECOM_NOTIFICATION_INCOMING_CHANNEL_ID,
        NotificationManagerCompat.IMPORTANCE_HIGH,
    ).setName("Incoming calls")
        .setDescription("Handles the notifications when receiving a call")
        .setVibrationEnabled(true).setSound(
            ringToneUri,
            AudioAttributes.Builder()
                .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                .setLegacyStreamType(AudioManager.STREAM_RING)
                .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE).build(),
        ).build()

Yalnızca etkin aramalar için önemin varsayılan olarak ayarlanması gerekir. Şunu kullanın: gelen aramalarla ilgili bildirimlere izin vermek için aşağıdaki gelen arama stilini izleme kapatılamaz.

val ongoingChannel = NotificationChannelCompat.Builder(
        TELECOM_NOTIFICATION_ONGOING_CHANNEL_ID,
        NotificationManagerCompat.IMPORTANCE_DEFAULT,
    )
    .setName("Ongoing calls")
    .setDescription("Displays the ongoing call notifications")
    .build()

Gelen arama sırasında kullanıcının cihazının kilitlendiği kullanım alanlarını ele almak için bir etkinliği görüntülemek için tam ekran bildirim kullanın. Böylece, çağrıyı cevapla.

// on the notification
val contentIntent = PendingIntent.getActivity(
    /* context = */ context,
    /* requestCode = */ 0,
    /* intent = */ Intent(context, TelecomCallActivity::class.java),
    /* flags = */ PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,
)

İlgili talimatlar için Telefon araması uygulamaları için çağrı stilinde bildirim oluşturma başlıklı makaleyi inceleyin. Arama bildirimlerini diğer türlerden ayırt etmek için CallStyle bildirimleri etkinleştirebilirsiniz.