Notification Channel — nedir, türleri ve Android’de nasıl çalışır

Yazar: IT Sectr Yayınlanma: 2026-03-20 Okuma süresi: 8 dk

Notification Channel (bildirim kanalı), Android 8.0 (API 26) ile tanıtılan, bildirimleri kategorilere göre gruplandıran ve kullanıcıya davranışları üzerinde kontrol veren bir Android mekanizmasıdır. Her kanal, kanal üzerinden gönderilen tüm bildirimler için önem seviyesini, sesi, titreşimi ve görsel görünümü belirler. Android Developers’a göre, Android 8+’da tüm bildirimler için NotificationChannel zorunludur — bu olmadan bildirimler görüntülenmez.

Ana noktalar

  • Notification Channel — Android 8+ bildirim kategorisi, bir grup bildirimin davranışını yönetir
  • Zorunluluk — Android 8+’da her bildirimin bir kanalı olmalıdır, aksi takdirde görüntülenmez
  • Önem seviyesi — kanalın önem seviyesi (IMPORTANCE_HIGH, DEFAULT, LOW, MIN) görüntüleme şeklini belirler
  • Kullanıcı kontrolü — kullanıcı her kanalı sistem ayarlarında ayrı ayrı yapılandırabilir
  • Kanal grupları — NotificationChannelGroup, ayar arayüzünde kanalları görsel olarak gruplandırır

Notification Channel nedir?

Notification Channel, Android 8+ (Oreo) içinde aynı tür bildirimler için mantıksal bir kapsayıcıdır. Geliştirici, benzersiz bir kimliğe sahip bir kanal oluşturur, parametrelerini ayarlar ve ardından her bildirimi bu kanalı belirterek gönderir. Aynı kanaldaki tüm bildirimler, kanalın ayarlarını devralır.

Android 8’den önce, bildirim yönetimi ikiliydi: ya hep ya hiç. Kullanıcı yalnızca uygulamanın tüm bildirimlerini tamamen devre dışı bırakabilirdi. Kanallar bu sorunu çözdü: artık “reklam” bildirimlerini devre dışı bırakabilir ancak “arkadaşlardan gelen mesajları” tutabilirsiniz.

Bir kanal oluşturulduktan sonra, önemi kullanıcı tarafından Ayarlar → Uygulamalar → Bildirimler yoluyla herhangi bir zamanda değiştirilebilir. Geliştirici, kanalı oluşturduktan sonra önemi programlama yoluyla değiştiremez — bu bir Android güvenlik kısıtlamasıdır.

Kanalın zorunluluğu

Android 8+’da her bildirim bir NotificationChannel aracılığıyla gönderilmelidir. Bir uygulama kanalsız bir bildirim göstermeye çalışırsa, sistem onu sessizce yok sayar. İstisna, kütüphane tarafından otomatik olarak oluşturulan varsayılan kanala sahip NotificationCompat aracılığıyla gönderilen bildirimlerdir.

Android’de bildirim kanalları nasıl çalışır?

Bir bildirim kanalı, NotificationChannel sınıfı aracılığıyla oluşturulurken ayarlanan bir dizi parametre ile tanımlanır. Ana parametre, bildirimin kullanıcıyla nasıl etkileşime gireceğini belirleyen önem seviyesidir.

  • Kanal kimliği — benzersiz bir dize (örn. “messages”), her bildirim gönderilirken kullanılır
  • Kanal adı — ayarlarda kullanıcıya gösterilen okunabilir bir ad
  • Açıklama — kanalın amacının açıklaması, ayarlarda adın altında gösterilir
  • Önem — IMPORTANCE_NONE’dan IMPORTANCE_HIGH’a kadar bir seviye, görüntüleme şeklini belirler
  • Ses ve titreşim — oluşturma sırasında her kanal için ayrı ayrı yapılandırılır

Oluşturulduktan sonra kanal, sistem bildirim ayarlarında görünür. Kullanıcı önemi değiştirebilir, sesi, titreşimi kapatabilir veya kanalı tamamen engelleyebilir. Tüm değişiklikler sonraki tüm bildirimler için hemen geçerli olur.

Kanal yapılandırma parametreleri

Bir NotificationChannel oluştururken şunları yapılandırabilirsiniz: ses (özel veya sistem), titreşim (desen ve süre), ışık göstergesi (LED rengi), rozet simgesi (setShowBadge), kilit ekranı (setLockscreenVisibility) ve rahatsız etmeyin modu (setBypassDnd). Bu parametreler kanal oluşturulurken sabitlenir ve daha sonra yalnızca kullanıcı tarafından değiştirilebilir.

Önem seviyesi: karşılaştırma tablosu

Önem seviyesi, bir kanalın ana parametresidir. Bildirimin ses çalıp çalmayacağını, ekranda görünüp görünmeyeceğini veya sadece gölgeye yerleştirilip yerleştirilmeyeceğini belirler. Önem, öncelikle karıştırılmamalıdır — önem kanal tarafından belirlenir ve öncelik (setPriority) Android 8+’da yok sayılır.

SeviyeSabitDavranışSes
HIGHIMPORTANCE_HIGH (4)Heads-up bannerı gösterir, gölgede görünürEvet
DEFAULTIMPORTANCE_DEFAULT (3)Gölgede görünür, heads-up yokEvet
LOWIMPORTANCE_LOW (2)Sessiz gölgede görünürHayır
MINIMPORTANCE_MIN (1)Sadece gölgede, ses veya titreşim yokHayır
NONEIMPORTANCE_NONE (0)Hiç görüntülenmezHayır

Çoğu kullanıcı senaryosu için IMPORTANCE_DEFAULT (3) kullanın — bildirim sesle birlikte gölgede görünür ancak açılır pencere bannerı olmaz. IMPORTANCE_HIGH’ı yalnızca kritik olaylar için kullanın: gelen çağrı, bir kişiden mesaj, zamanlayıcı hatırlatıcısı.

Android kodunda kanal oluşturma

Kanal, uygulama başladığında veya ilk kullanımda bir kez oluşturulur. En iyi uygulama, tüm kanalları uygulama başlangıcında, Application.onCreate yönteminde oluşturmaktır. Mevcut bir kanalı yeniden oluşturmak güvenlidir — kanal zaten varsa Android çağrıyı yok sayar.

kotlin
class App : Application() {

    override fun onCreate() {
        super.onCreate()
        createNotificationChannels()
    }

    private fun createNotificationChannels() {
        val messagesChannel = NotificationChannel(
            CHANNEL_MESSAGES,
            "Mesajlar",
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Yeni mesaj bildirimleri"
            enableVibration = true
            setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
        }

        val promoChannel = NotificationChannel(
            CHANNEL_PROMO,
            "Promosyonlar ve haberler",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "Pazarlama bildirimleri ve özel teklifler"
            setShowBadge(false)
        }

        val manager = getSystemService(NotificationManager::class.java)
        manager.createNotificationChannel(messagesChannel)
        manager.createNotificationChannel(promoChannel)
    }

    companion object {
        const val CHANNEL_MESSAGES = "messages"
        const val CHANNEL_PROMO = "promo"
    }
}

Bir bildirim gönderirken, kanal kimliğini setChannelId (NotificationCompat için) veya Notification.Builder yapıcısında belirtin. Belirtilen kimliğe sahip kanal yoksa bildirim gösterilmez, ancak herhangi bir hata oluşmaz.

Kanal yönetimi ve düzenleme

Android, kanalların programlama yoluyla yönetimi için çeşitli API’ler sağlar: liste alma, silme ve mevcut ayarları kontrol etme. Bir kanalın silinmesi, tüm bildirimlerinin sistem geçmişinden kaldırılmasına neden olur.

kotlin
val manager =
    getSystemService(NotificationManager::class.java)

// Tüm kanalların listesini al
val channels = manager.getNotificationChannels()
channels.forEach { channel ->
    Log.d("Kanallar", "${channel.id}: ${channel.importance}")
}

// Mevcut önemi öğren (kullanıcı değiştirmiş olabilir)
val channel = manager.getNotificationChannel(CHANNEL_MESSAGES)
if (channel.importance == NotificationManager.IMPORTANCE_NONE) {
    // Kullanıcı kanalı devre dışı bıraktı
    suggestEnablingChannel()
}

// Kanalı sil
manager.deleteNotificationChannel(CHANNEL_PROMO)

Bir kanal oluşturulduktan sonra geliştirici, önemini programlama yoluyla değiştiremez — bu, kullanıcıyı kötüye kullanımdan korumak için bir Android kısıtlamasıdır. Bir kanalın önemini değiştirmeniz gerekiyorsa, farklı bir kimliğe sahip yeni bir kanal oluşturun ve bildirimleri taşıyın.

Önem değişikliğinde geçiş

Mevcut bir kanalın önemini değiştirmeniz gerekiyorsa, farklı bir kimlikle (örn. “messages_v2”) yeni bir kanal oluşturun ve bildirimleri ona göndermeye başlayın. Eski kanal deleteNotificationChannel aracılığıyla silinebilir — tüm bildirimleri geçmişten kaldırılır. Kullanıcının ayarlarını kaybetmemesi için uygulama arayüzü aracılığıyla kullanıcıyı geçiş hakkında uyarın.

Kanal grupları (NotificationChannelGroup)

NotificationChannelGroup, birden çok kanalı Android ayarlar arayüzünde görsel bir grupta birleştirir. Gruplar, uygulama 5+ kanal kullandığında kullanıcının gezinmesine yardımcı olur: örneğin, “Sosyal,” “Sistem,” “Pazarlama.”

Bir grup createNotificationChannelGroup aracılığıyla oluşturulur ve setGroup yöntemi aracılığıyla oluşturulurken kanala iletilir. Bir grubun silinmesi, tüm kanallarını da siler. Her kanal yalnızca bir gruba ait olabilir.

Pratikte, kanal grupları 3’ten fazla kanalı olan uygulamalar için önerilir. Ayarlarda gezinmeyi basitleştirir ve kullanıcının kanal listesini anlamadan tüm bildirimleri bir kerede devre dışı bırakma olasılığını azaltır.

Bir kanal grubu oluşturma örneği

Bir grup createNotificationChannelGroup aracılığıyla benzersiz bir kimlik ve adla oluşturulur. Ardından her kanal, setGroup yöntemi aracılığıyla gruba atanır. Sistem ayarlarında, grup bir başlığa sahip bir bölüm olarak görünür ve altında bu grubun tüm kanalları listelenir. Bir grup silinirse, tüm kanalları da sistem tarafından otomatik olarak kurtarma imkanı olmadan kaldırılır.

Kanal tasarım desenleri

Doğru bildirim kanalı tasarımı, kullanıcı deneyimini ve kullanıcıyı elde tutmayı doğrudan etkiler. Ana desen üç önem seviyesidir: mesajlar ve aramalar için kritik kanal (IMPORTANCE_HIGH), genel bildirimler için standart (IMPORTANCE_DEFAULT) ve pazarlama ve haberler için sessiz (IMPORTANCE_LOW). Bu kademelendirme, kullanıcıya aşırı yükleme olmadan net bir seçenek sunar.

İkinci desen her işlevsel modül için bir kanaldır. Uygulamanın her ana modülü (sohbet, siparişler, akış, pazarlama) kendi kanalına sahiptir. 5’ten fazla modül varsa, bunları bir NotificationChannelGroup içinde birleştirin. Sistem ayarlarında, grup daraltılabilir öğelere sahip bir bölüm olarak görünür — bu, gezinmeyi basitleştirir.

Üçüncü desen bir geliştirici kanalıdır. Hata ayıklama ve hizmet bildirimleri için IMPORTANCE_MIN ile ayrı bir kanal oluşturun. Kullanıcılar bunları gölgede görmez, ancak geliştirici adb aracılığıyla günlükleri analiz edebilir. Üretimde, bu kanal ayarlardaki Intent aracılığıyla silinebilir veya arayüzden gizlenebilir.

Dördüncü desen kanal geri bildirimidir. Kullanıcıya arayüzde hangi kanalların etkin olduğunu ve mevcut önemlerini gösterin. Android 8+’da getNotificationChannel aracılığıyla kanal durumunu alabilir ve kanal devre dışı bırakılmışsa kullanıcıya ayarları değiştirmeyi önerebilirsiniz. Bu, uygulamanın kritik işlevleri için özellikle önemlidir.

Sıkça sorulan sorular

Android 8+’da bir kanal oluşturmazsam ne olur?

Bildirim görüntülenmez ne gölgede ne de tepside. Sistem, notify() çağrısını sessizce yok sayar. İstisnalar: NotificationCompat kullanıldığında, kütüphane varsayılan bir kanal oluşturur, ancak önemi her zaman DEFAULT’tır. Her zaman kendi kanallarınızı oluşturmanız önerilir.

Bir kanalı oluşturduktan sonra değiştirebilir miyim?

Bir kanalın adını, açıklamasını ve sesini değiştirebilirsiniz. Önemi değiştiremezsiniz — bu karar geliştiriciden sistem tarafından korunur. Önemi artırmanız gerekiyorsa, farklı bir kimliğe sahip yeni bir kanal oluşturun ve yeni bildirimler için kullanın. Kullanıcı önemi herhangi bir zamanda değiştirebilir.

Kullanıcının bir kanalı devre dışı bırakıp bırakmadığını nasıl kontrol ederim?

getNotificationChannel kullanın ve önemi kontrol edin: değer IMPORTANCE_NONE ise kanal devre dışı bırakılmıştır. Ayrıca Intent aracılığıyla kanalın sistem ayarlarını açabilirsiniz: Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS app_package ve channel_id parametreleriyle.

Bir uygulamada kaç kanal oluşturulabilir?

Limit yok — Android kanal sayısı için bir sınır belirlemez. Ancak, kullanıcıyı seçeneklerle boğmamak için 5–10’dan fazla kanal oluşturulmaması önerilir. Optimum minimum 2–3 kanaldır: kritik bildirimler, normal ve pazarlama.

Kanallar Android 7 ve altında çalışır mı?

Android 7.1 (API 25) ve altında, kanallar desteklenmez. NotificationChannel sınıfı yalnızca API 26’dan itibaren kullanılabilir. Geriye dönük uyumluluk için NotificationCompat kullanın ve kanal oluşturmayı bir koşul içine alın: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O).

Özet

  • Notification Channel — Android 8+ bildirim gruplandırma mekanizması, görüntüleme için zorunlu
  • Önem — NONE’dan HIGH’a seviye, ses, heads-up ve gölge görünürlüğünü belirler
  • Yönetim — kullanıcı önemi ve kanal sesini her zaman değiştirebilir
  • Oluşturma — kanal NotificationManager.createNotificationChannel ile bir kez oluşturulur
  • Değiştirilemez önem — geliştirici kanal oluşturulduktan sonra önemi artıramaz
  • Gruplar — NotificationChannelGroup, ayarlarda rahat gezinme için kanalları birleştirir
  • Uyumluluk — Android 7-’de SDK sürümü kontrolüyle NotificationCompat kullanın

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun