Notification Channel — wat is het, welke typen zijn er en hoe werken ze in Android

Auteur: IT Sectr Gepubliceerd: 2026-03-20 Leestijd: 8 min

Notification Channel (meldingskanaal) — is een Android-mechanisme, geïntroduceerd in versie 8.0 (API 26), dat meldingen categoriseert en de gebruiker controle geeft over hun gedrag. Elk kanaal bepaalt het belangrijkheidsniveau, geluid, trilling en visuele vormgeving voor alle meldingen die erdoor worden verzonden. Volgens Android Developers is NotificationChannel verplicht voor alle meldingen op Android 8+ — zonder worden meldingen niet weergegeven.

Belangrijkste punten

  • Notification Channel — categorie van Android 8+ meldingen die het gedrag van een meldingengroep beheert
  • Verplichting — op Android 8+ moet elke melding een kanaal hebben, anders wordt deze niet weergegeven
  • Importance Level — het belangrijkheidsniveau van het kanaal (IMPORTANCE_HIGH, DEFAULT, LOW, MIN) bepaalt de weergavewijze
  • Gebruikersbeheer — de gebruiker kan elk kanaal afzonderlijk aanpassen in de systeeminstellingen
  • Kanaalgroepen — NotificationChannelGroup groepeert kanalen visueel in de instellingeninterface

Wat is Notification Channel?

Notification Channel — is een logische container voor meldingen van hetzelfde type in Android 8+ (Oreo). De ontwikkelaar maakt een kanaal met een uniek ID, stelt de parameters in en verzendt vervolgens elke melding met vermelding van dit kanaal. Alle meldingen in één kanaal erven de instellingen ervan.

Vóór Android 8 was meldingenbeheer binair: alles of niets. De gebruiker kon alleen meldingen van de app volledig uitschakelen. Kanalen hebben dit probleem opgelost: nu kunnen reclame-meldingen worden uitgeschakeld terwijl berichten van vrienden behouden blijven.

Na het aanmaken van het kanaal kan de belangrijkheid (importance) ervan door de gebruiker op elk moment worden gewijzigd via Instellingen → Apps → Meldingen. De ontwikkelaar kan importance niet programmatisch wijzigen nadat het kanaal is aangemaakt — dit is een Android-beveiligingsbeperking.

Verplichting van kanalen

Op Android 8+ moet elke melding via NotificationChannel worden verzonden. Als de app probeert een melding zonder kanaal weer te geven — negeert het systeem deze stilzwijgend. Uitzondering — meldingen via NotificationCompat met een standaardkanaal dat automatisch door de bibliotheek wordt aangemaakt.

Hoe werken meldingskanalen in Android?

Een meldingskanaal wordt gedefinieerd door een set parameters die worden ingesteld bij het aanmaken via de klasse NotificationChannel. De belangrijkste parameter — importance level, die bepaalt hoe de melding met de gebruiker interageert.

  • Kanaal-ID — unieke tekenreeks (bijv. „messages“), gebruikt bij het verzenden van elke melding
  • Kanaalnaam — leesbare naam, weergegeven aan de gebruiker in instellingen
  • Beschrijving — uitleg over het doel van het kanaal, getoond in instellingen onder de naam
  • Importance — niveau van IMPORTANCE_NONE tot IMPORTANCE_HIGH, bepaalt de weergavewijze
  • Geluid en trilling — worden bij het aanmaken afzonderlijk voor elk kanaal geconfigureerd

Na het aanmaken verschijnt het kanaal in de systeeminstellingen voor meldingen. De gebruiker kan importance wijzigen, geluid, trilling uitschakelen of het kanaal volledig blokkeren. Alle wijzigingen worden onmiddellijk van kracht voor alle volgende meldingen.

Configuratieparameters van het kanaal

Bij het aanmaken van NotificationChannel kunnen worden geconfigureerd: geluid (aangepast of systeem), trilling (patroon en duur), lichtindicator (LED-kleur), badge (setShowBadge), zichtbaarheid op vergrendeld scherm (setLockscreenVisibility) en Niet storen-modus (setBypassDnd). Deze parameters worden vastgelegd bij het aanmaken van het kanaal en kunnen later alleen door de gebruiker worden gewijzigd.

Importance Level: vergelijkingstabel

Het belangrijkheidsniveau (importance) — de hoofdparameter van het kanaal. Het bepaalt of de melding geluid afspeelt, op het scherm verschijnt of alleen in de schaduw wordt geplaatst. Belangrijkheid mag niet worden verward met prioriteit — importance wordt door het kanaal ingesteld, terwijl prioriteit (setPriority) op Android 8+ wordt genegeerd.

NiveauConstanteGedragGeluid
HIGHIMPORTANCE_HIGH (4)Toont heads-up banner, verschijnt in het meldingenpaneelJa
DEFAULTIMPORTANCE_DEFAULT (3)Verschijnt in het meldingenpaneel, zonder heads-upJa
LOWIMPORTANCE_LOW (2)Verschijnt in het meldingenpaneel zonder geluidNee
MINIMPORTANCE_MIN (1)Alleen in de schaduw, zonder geluid en trillingNee
NONEIMPORTANCE_NONE (0)Wordt helemaal niet weergegevenNee

Gebruik voor de meeste gebruikersscenario’s IMPORTANCE_DEFAULT (3) — de melding verschijnt in het paneel met geluid, maar zonder pop-upbanner. Gebruik IMPORTANCE_HIGH alleen voor kritieke gebeurtenissen: inkomend gesprek, bericht van een gesprekspartner, herinnering met timer.

Kanaal aanmaken in Android-code

Het kanaal wordt eenmalig aangemaakt — bij het opstarten van de app of bij het eerste gebruik. De beste praktijk is om alle kanalen aan te maken bij het opstarten van de app, in de methode Application.onCreate. Het opnieuw aanmaken van een bestaand kanaal is veilig — Android negeert de aanroep als het kanaal al bestaat.

kotlin
class App : Application() {

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

    private fun createNotificationChannels() {
        val messagesChannel = NotificationChannel(
            CHANNEL_MESSAGES,
            "Berichten",
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Meldingen over nieuwe berichten"
            enableVibration = true
            setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
        }

        val promoChannel = NotificationChannel(
            CHANNEL_PROMO,
            "Acties en nieuws",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "Marketingmeldingen en speciale aanbiedingen"
            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"
    }
}

Geef bij het verzenden van een melding het kanaal-ID op via setChannelId (voor NotificationCompat) of in de constructor van Notification.Builder. Als het kanaal met het opgegeven ID niet bestaat — wordt de melding niet getoond, maar treedt er geen fout op.

Kanalen beheren en bewerken

Android biedt verschillende API’s voor programmatisch kanaalbeheer: lijst ophalen, verwijderen en huidige instellingen controleren. Het verwijderen van een kanaal leidt ertoe dat al zijn meldingen door het systeem uit de geschiedenis worden verwijderd.

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

// Lijst van alle kanalen ophalen
val channels = manager.getNotificationChannels()
channels.forEach { channel ->
    Log.d("Kanalen", "${channel.id}: ${channel.importance}")
}

// Huidige importance achterhalen (gebruiker kan deze hebben gewijzigd)
val channel = manager.getNotificationChannel(CHANNEL_MESSAGES)
if (channel.importance == NotificationManager.IMPORTANCE_NONE) {
    // Gebruiker heeft kanaal uitgeschakeld
    suggestEnablingChannel()
}

// Kanaal verwijderen
manager.deleteNotificationChannel(CHANNEL_PROMO)

Nadat het kanaal is aangemaakt, kan de ontwikkelaar de importance niet programmatisch wijzigen — dit is een Android-beperking om de gebruiker te beschermen tegen misbruik. Als de belangrijkheid van het kanaal moet worden gewijzigd, maak dan een nieuw kanaal met een ander ID en migreer de meldingen.

Migratie bij wijziging van importance

Als de belangrijkheid van een bestaand kanaal moet worden gewijzigd, maak dan een nieuw kanaal met een ander ID (bijv. „messages_v2“) en begin meldingen ernaartoe te sturen. Het oude kanaal kan worden verwijderd via deleteNotificationChannel — al zijn meldingen worden uit de geschiedenis verwijderd. Informeer de gebruiker over de migratie via de app-interface zodat hij geen instellingen verliest.

Kanaalgroepen (NotificationChannelGroup)

NotificationChannelGroup combineert meerdere kanalen in één visuele groep in de Android-instellingeninterface. Groepen helpen de gebruiker bij de navigatie wanneer de app 5+ kanalen gebruikt: bijvoorbeeld „Sociaal“, „Systeem“, „Marketing“.

De groep wordt aangemaakt via createNotificationChannelGroup en doorgegeven aan het kanaal bij het aanmaken via de methode setGroup. Het verwijderen van de groep verwijdert ook al zijn kanalen. Elk kanaal kan slechts tot één groep behoren.

In de praktijk worden kanaalgroepen aanbevolen voor apps met meer dan 3 kanalen. Ze vereenvoudigen de navigatie in instellingen en verkleinen de kans dat de gebruiker alle meldingen in één keer uitschakelt zonder de lijst met kanalen te begrijpen.

Voorbeeld van het aanmaken van een kanaalgroep

De groep wordt aangemaakt via createNotificationChannelGroup met een uniek ID en naam. Vervolgens wordt elk kanaal via de methode setGroup aan de groep gekoppeld. In de systeeminstellingen wordt de groep weergegeven als een sectie met een kop, waaronder alle kanalen van deze groep vallen. Als de groep wordt verwijderd, worden al zijn kanalen ook automatisch door het systeem verwijderd zonder herstelmogelijkheid.

Ontwerppatronen voor kanalen

Het correct ontwerpen van meldingskanalen heeft directe invloed op de gebruikerservaring en retentie. Het belangrijkste patroon — drie belangrijkheidsniveaus: kritiek kanaal (IMPORTANCE_HIGH) voor berichten en oproepen, standaard (IMPORTANCE_DEFAULT) voor algemene meldingen en stil (IMPORTANCE_LOW) voor marketing en nieuws. Zo’n gradatie geeft de gebruiker een duidelijke keuze zonder overbelasting.

Het tweede patroon — kanaal per functionele module. Elke grote module van de app (chat, bestellingen, feed, marketing) krijgt zijn eigen kanaal. Als er meer dan 5 modules zijn, combineer ze dan in NotificationChannelGroup. In de systeeminstellingen wordt de groep weergegeven als een sectie met inklapbare elementen — dit vereenvoudigt de navigatie.

Het derde patroon — kanaal voor ontwikkelaars. Maak een apart kanaal met IMPORTANCE_MIN voor foutopsporings- en servicemeldingen. Gebruikers zien ze niet in het paneel, maar de ontwikkelaar kan logs analyseren via adb. In productie kan dit kanaal worden verwijderd of via Intent uit de interface worden verborgen in de instellingen.

Het vierde patroon — feedback over kanalen. Toon de gebruiker in de interface welke kanalen actief zijn en wat hun huidige importance is. Op Android 8+ kan de kanaalstatus worden opgevraagd via getNotificationChannel en kan de gebruiker worden voorgesteld de instellingen te wijzigen als het kanaal is uitgeschakeld. Dit is vooral belangrijk voor kritieke functies van de app.

Veelgestelde vragen

Wat gebeurt er als er geen kanaal wordt aangemaakt op Android 8+?

De melding wordt niet weergegeven in het paneel of in de schaduw. Het systeem negeert de notify()-aanroep stilzwijgend. Uitzonderingen: bij gebruik van NotificationCompat maakt de bibliotheek een standaardkanaal aan, maar de importance ervan is altijd DEFAULT. Het wordt aanbevolen altijd eigen kanalen aan te maken.

Kan een kanaal worden gewijzigd nadat het is aangemaakt?

De naam, beschrijving en het geluid van het kanaal kunnen worden gewijzigd. Importance kan niet worden gewijzigd — deze beslissing wordt door het systeem beschermd tegen de ontwikkelaar. Als de belangrijkheid moet worden verhoogd — maak dan een nieuw kanaal met een ander ID en gebruik het voor nieuwe meldingen. De gebruiker kan importance op elk moment wijzigen.

Hoe controleer ik of de gebruiker het kanaal heeft uitgeschakeld?

Gebruik getNotificationChannel en controleer importance: als de waarde IMPORTANCE_NONE is, is het kanaal uitgeschakeld. Je kunt ook de systeeminstellingen van het kanaal openen via Intent: Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS met parameters app_package en channel_id.

Hoeveel kanalen kunnen in één app worden aangemaakt?

Er zijn geen beperkingen — Android stelt geen limiet aan het aantal kanalen. Het wordt echter aanbevolen niet meer dan 5–10 kanalen aan te maken om de gebruiker niet te overladen met keuzes. Het optimale minimum is 2–3 kanalen: kritieke meldingen, gewone meldingen en marketing.

Werken kanalen op Android 7 en ouder?

Op Android 7.1 (API 25) en ouder worden kanalen niet ondersteund. De klasse NotificationChannel is alleen beschikbaar vanaf API 26. Gebruik voor achterwaartse compatibiliteit NotificationCompat en omhul het aanmaken van het kanaal met een if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)-conditie.

Samenvatting

  • Notification Channel — Android 8+ meldingengroeperingsmechanisme, verplicht voor weergave
  • Importance — niveau van NONE tot HIGH, bepaalt geluid, heads-up en zichtbaarheid in paneel
  • Beheer — gebruiker kan importance en geluid van het kanaal op elk moment wijzigen
  • Aanmaken — kanaal wordt eenmalig aangemaakt via NotificationManager.createNotificationChannel
  • Onveranderlijkheid van importance — ontwikkelaar kan belangrijkheid niet verhogen na aanmaak
  • Groepen — NotificationChannelGroup combineert kanalen voor eenvoudige navigatie in instellingen
  • Compatibiliteit — op Android 7- gebruik NotificationCompat met SDK-versiecontrole

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook