Notification Channel — bu nədir, hansı növləri var və Android-də necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-03-20 Oxuma vaxtı: 8 dəq

Notification Channel (bildiriş kanalı) — Android-in 8.0 (API 26) versiyasında təqdim edilmiş mexanizmdir. O, bildirişləri kateqoriyalara qruplaşdırır və istifadəçiyə onların davranışına nəzarət etmək imkanı verir. Hər bir kanal özündən göndərilən bütün bildirişlər üçün vaciblik səviyyəsini, səsi, vibrasiyanı və vizual tərtibatı müəyyən edir. Android Developers məlumatına görə, NotificationChannel Android 8+-də bütün bildirişlər üçün məcburidir — onsuz bildirişlər göstərilmir.

Əsas məqamlar

  • Notification Channel — bildirişlər qrupunun davranışını idarə edən Android 8+ bildiriş kateqoriyası
  • Məcburilik — Android 8+-də hər bir bildirişin kanalı olmalıdır, əks halda göstərilmir
  • Importance Level — kanalın vaciblik səviyyəsi (IMPORTANCE_HIGH, DEFAULT, LOW, MIN) göstərilmə üsulunu müəyyən edir
  • İstifadəçi nəzarəti — istifadəçi hər bir kanalı sistem parametrlərində fərdi şəkildə tənzimləyə bilər
  • Kanal qrupları — NotificationChannelGroup kanalları parametrlər interfeysində vizual olaraq birləşdirir

Notification Channel nədir?

Notification Channel — Android 8+ (Oreo) sistemində eyni tipli bildirişlər üçün məntiqi konteynerdir. Tərtibatçı unikal ID ilə kanal yaradır, onun parametrlərini təyin edir və sonra hər bir bildirişi bu kanalı göstərərək göndərir. Eyni kanaldakı bütün bildirişlər onun parametrlərini miras alır.

Android 8-dən əvvəl bildirişlərin idarə edilməsi ikili idi: ya hamısı, ya heç biri. İstifadəçi yalnız tətbiqin bildirişlərini tamamilə söndürə bilərdi. Kanallar bu problemi həll etdi: indi reklam bildirişlərini söndürüb, dostlardan gələn mesajları saxlamaq olar.

Kanal yaradıldıqdan sonra onun vaciblik səviyyəsi (importance) istifadəçi tərəfindən istənilən vaxt Parametrlər → Tətbiqlər → Bildirişlər vasitəsilə dəyişdirilə bilər. Tərtibatçı kanal yaradıldıqdan sonra importance-i proqram olaraq dəyişə bilməz — bu Android təhlükəsizlik məhdudiyyətidir.

Kanalların məcburiliyi

Android 8+-də hər bir bildiriş NotificationChannel vasitəsilə göndərilməlidir. Tətbiq kanalsız bildiriş göstərməyə çalışarsa — sistem onu səssizcə görməzlikdən gəlir. İstisna — kitabxana tərəfindən avtomatik yaradılan standart kanalla NotificationCompat vasitəsilə bildirişlərdir.

Android-də bildiriş kanalları necə işləyir?

Bildiriş kanalı NotificationChannel sinfi vasitəsilə yaradılarkən təyin olunan parametrlər dəsti ilə müəyyən edilir. Əsas parametr — bildirişin istifadəçi ilə qarşılıqlı əlaqəsini müəyyən edən importance səviyyəsidir.

  • Kanal ID-si — unikal sətir (məsələn, “messages”), hər bildiriş göndərərkən istifadə olunur
  • Kanal adı — oxunaqlı ad, istifadəçiyə parametrlərdə göstərilir
  • Təsvir — kanalın məqsədini izah edən mətn, parametrlərdə adın altında göstərilir
  • Importance — IMPORTANCE_NONE-dan IMPORTANCE_HIGH-dək səviyyə, göstərilmə üsulunu müəyyən edir
  • Səs və vibrasiya — yaradılarkən hər kanal üçün ayrıca tənzimlənir

Yaradıldıqdan sonra kanal sistem bildiriş parametrlərində görünür. İstifadəçi importance-i dəyişə, səsi, vibrasiyanı söndürə və ya kanalı tamamilə bloklaya bilər. Bütün dəyişikliklər sonrakı bildirişlər üçün dərhal qüvvəyə minir.

Kanal konfiqurasiya parametrləri

NotificationChannel yaradılarkən aşağıdakılar tənzimlənə bilər: səs (fərdi və ya sistem), vibrasiya (naxış və müddət), işıq göstəricisi (LED rəngi), nişan (setShowBadge), kilid ekranında görünmə (setLockscreenVisibility) və Rahatsız etmə rejimi (setBypassDnd). Bu parametrlər kanal yaradılarkən təsbit edilir və sonradan yalnız istifadəçi tərəfindən dəyişdirilə bilər.

Importance Level: müqayisə cədvəli

Vaciblik səviyyəsi (importance) — kanalın əsas parametridir. Bildirişin səs çalacağını, ekranda görünəcəyini və ya sadəcə kölgədə yerləşəcəyini müəyyən edir. Importance-i prioritetlə qarışdırmaq olmaz — importance kanal tərəfindən təyin edilir, prioritet (setPriority) isə Android 8+-də nəzərə alınmır.

SəviyyəSabitDavranışSəs
HIGHIMPORTANCE_HIGH (4)Heads-up banner göstərir, pərdədə görünürBəli
DEFAULTIMPORTANCE_DEFAULT (3)Pərdədə görünür, heads-up yoxdurBəli
LOWIMPORTANCE_LOW (2)Səssiz pərdədə görünürXeyr
MINIMPORTANCE_MIN (1)Yalnız kölgədə, səs və vibrasiya olmadanXeyr
NONEIMPORTANCE_NONE (0)Ümumiyyətlə göstərilmirXeyr

Əksər istifadəçi ssenariləri üçün IMPORTANCE_DEFAULT (3) istifadə edin — bildiriş səslə pərdədə görünəcək, lakin açılan banner olmadan. IMPORTANCE_HIGH yalnız kritik hadisələr üçün istifadə edin: daxil olan zəng, həmsöhbətdən mesaj, taymer xatırlatması.

Android kodunda kanalın yaradılması

Kanal bir dəfə — tətbiq işə salındıqda və ya ilk istifadə zamanı yaradılır. Ən yaxşı təcrübə — bütün kanalları tətbiq işə salındıqda, Application.onCreate metodunda yaratmaqdır. Mövcud kanalı təkrar yaratmaq təhlükəsizdir — kanal artıq varsa, Android zəngi nəzərə almır.

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 mesajlar haqqında bildirişlər"
            enableVibration = true
            setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
        }

        val promoChannel = NotificationChannel(
            CHANNEL_PROMO,
            "Aksiyalar və xəbərlər",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "Marketinq bildirişləri və xüsusi təkliflər"
            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"
    }
}

Bildiriş göndərərkən kanalın ID-sini setChannelId (NotificationCompat üçün) və ya Notification.Builder konstruktorunda göstərin. Göstərilən ID ilə kanal mövcud deyilsə — bildiriş göstərilməyəcək, lakin xəta baş verməyəcək.

Kanalların idarə edilməsi və redaktəsi

Android kanalların proqram idarə edilməsi üçün bir neçə API təqdim edir: siyahının alınması, silinməsi və cari parametrlərin yoxlanılması. Kanalın silinməsi onun bütün bildirişlərinin sistem tərəfindən tarixçədən silinməsinə səbəb olur.

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

// Bütün kanalların siyahısını əldə edin
val channels = manager.getNotificationChannels()
channels.forEach { channel ->
    Log.d("Kanallar", "${channel.id}: ${channel.importance}")
}

// Cari importance-i öyrənin (istifadəçi dəyişə bilər)
val channel = manager.getNotificationChannel(CHANNEL_MESSAGES)
if (channel.importance == NotificationManager.IMPORTANCE_NONE) {
    // İstifadəçi kanalı söndürüb
    suggestEnablingChannel()
}

// Kanalı silin
manager.deleteNotificationChannel(CHANNEL_PROMO)

Kanal yaradıldıqdan sonra tərtibatçı onun importance-ni proqram olaraq dəyişə bilməz — bu Android-in istifadəçini sui-istifadədən qorumaq üçün məhdudiyyətidir. Kanalın vacibliyini dəyişmək lazımdırsa, fərqli ID ilə yeni kanal yaradın və bildirişləri köçürün.

Importance dəyişikliyində miqrasiya

Mövcud kanalın vacibliyini dəyişmək tələb olunarsa, fərqli ID ilə (məsələn, “messages_v2”) yeni kanal yaradın və ona bildirişlər göndərməyə başlayın. Köhnə kanalı deleteNotificationChannel vasitəsilə silmək olar — onun bütün bildirişləri tarixçədən silinəcək. İstifadəçini miqrasiya barədə tətbiq interfeysi vasitəsilə xəbərdar edin ki, parametrlərini itirməsin.

Kanal qrupları (NotificationChannelGroup)

NotificationChannelGroup bir neçə kanalı Android parametrlər interfeysində bir vizual qrupda birləşdirir. Qruplar tətbiq 5+ kanaldan istifadə etdikdə istifadəçiyə istiqamətlənməyə kömək edir: məsələn, “Sosial”, “Sistem”, “Marketinq”.

Qrup createNotificationChannelGroup vasitəsilə yaradılır və setGroup metodu ilə kanala ötürülür. Qrupun silinməsi onun bütün kanallarını da silir. Hər bir kanal yalnız bir qrupa aid ola bilər.

Praktikada kanal qrupları 3-dən çox kanalı olan tətbiqlər üçün tövsiyə olunur. Onlar parametrlərdə naviqasiyanı sadələşdirir və istifadəçinin kanal siyahısını anlamadan bütün bildirişləri bir anda söndürmə ehtimalını azaldır.

Kanal qrupunun yaradılması nümunəsi

Qrup unikal ID və adla createNotificationChannelGroup vasitəsilə yaradılır. Sonra hər bir kanal setGroup metodu ilə qrupa bağlanır. Sistem parametrlərində qrup başlıqlı bölmə kimi göstərilir, onun altında bu qrupun bütün kanalları yerləşir. Qrup silinərsə, onun bütün kanalları da sistem tərəfindən avtomatik silinir və bərpa edilə bilməz.

Kanal dizayn nümunələri

Bildiriş kanallarının düzgün dizaynı istifadəçi təcrübəsinə və saxlama qabiliyyətinə birbaşa təsir edir. Əsas nümunə — üç vaciblik səviyyəsi: mesajlar və zənglər üçün kritik kanal (IMPORTANCE_HIGH), ümumi bildirişlər üçün standart (IMPORTANCE_DEFAULT) və marketinq və xəbərlər üçün sakit (IMPORTANCE_LOW). Bu dərəcələndirmə istifadəçiyə yükləmədən başa düşülən seçim verir.

İkinci nümunə — funksional modula görə kanal. Tətbiqin hər bir böyük modulu (çat, sifarişlər, lent, marketinq) öz kanalını alır. Modullar 5-dən çoxdursa, onları NotificationChannelGroup-də birləşdirin. Sistem parametrlərində qrup gizlənə bilən elementləri olan bölmə kimi göstərilir — bu naviqasiyanı sadələşdirir.

Üçüncü nümunə — tərtibatçı üçün kanal. Debug və xidmət bildirişləri üçün IMPORTANCE_MIN ilə ayrıca kanal yaradın. İstifadəçilər onları pərdədə görməyəcək, lakin tərtibatçı adb vasitəsilə logları təhlil edə bilər. Production-da bu kanal silinə və ya Intent vasitəsilə parametrlərdən gizlənə bilər.

Dördüncü nümunə — kanallar haqqında geribildirim. İstifadəçiyə interfeysdə hansı kanalların aktiv olduğunu və onların cari importance-ni göstərin. Android 8+-də kanalın statusunu getNotificationChannel vasitəsilə əldə edib, kanal söndürülübsə istifadəçiyə parametrləri dəyişməyi təklif edə bilərsiniz. Bu, xüsusilə tətbiqin kritik funksiyaları üçün vacibdir.

Tez-tez verilən suallar

Android 8+-də kanal yaradılmasa nə olar?

Bildiriş göstərilməyəcək nə pərdədə, nə də kölgədə. Sistem notify() çağırışını səssizcə görməzlikdən gəlir. İstisnalar: NotificationCompat istifadə edərkən kitabxana standart kanal yaradır, lakin onun importance həmişə DEFAULT olur. Həmişə öz kanallarınızı yaratmaq tövsiyə olunur.

Kanalı yaratdıqdan sonra dəyişdirmək olarmı?

Kanalın adını, təsvirini və səsini dəyişdirmək olar. Importance-i dəyişdirmək mümkün deyil — bu qərar sistem tərəfindən tərtibatçıdan qorunur. Vacibliyi artırmaq lazımdırsa — fərqli ID ilə yeni kanal yaradın və yeni bildirişlər üçün istifadə edin. İstifadəçi importance-i istənilən vaxt dəyişə bilər.

İstifadəçinin kanalı söndürdüyünü necə yoxlamaq olar?

getNotificationChannel istifadə edin və importance-i yoxlayın: dəyər IMPORTANCE_NONE-dirsə, kanal söndürülüb. Həmçinin Intent vasitəsilə kanalın sistem parametrlərini aça bilərsiniz: Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS app_package və channel_id parametrləri ilə.

Bir tətbiqdə neçə kanal yaratmaq olar?

Heç bir məhdudiyyət yoxdur — Android kanalların sayına limit qoymur. Bununla belə, istifadəçini seçimlə yükləməmək üçün 5–10-dan çox kanal yaratmamaq tövsiyə olunur. Optimal minimum 2–3 kanaldır: kritik bildirişlər, adi bildirişlər və marketinq.

Kanallar Android 7 və daha köhnə versiyalarda işləyirmi?

Android 7.1 (API 25) və daha köhnə versiyalarda kanallar dəstəklənmir. NotificationChannel sinfi yalnız API 26-dan etibarən mövcuddur. Geriyə uyğunluq üçün NotificationCompat istifadə edin və kanal yaradılmasını if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) şərtinə salın.

Nəticə

  • Notification Channel — Android 8+ bildiriş qruplaşdırma mexanizmi, göstərilməsi məcburidir
  • Importance — NONE-dən HIGH-dək səviyyə, səsi, heads-up-ı və pərdədə görünməni müəyyən edir
  • İdarəetmə — istifadəçi istənilən vaxt kanalın importance-ni və səsini dəyişə bilər
  • Yaradılma — kanal NotificationManager.createNotificationChannel vasitəsilə bir dəfə yaradılır
  • Importance dəyişməzliyi — tərtibatçı kanal yaradıldıqdan sonra vacibliyi artıra bilməz
  • Qruplar — NotificationChannelGroup kanalları parametrlərdə rahat naviqasiya üçün birləşdirir
  • Uyğunluq — Android 7-də NotificationCompat-dən SDK versiyası yoxlanılmaqla istifadə edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun