Notification Channel — définition, types et fonctionnement sur Android

Auteur : IT Sectr Publié le : 2026-03-20 Temps de lecture : 8 min

Notification Channel (canal de notification) est un mécanisme Android, introduit dans la version 8.0 (API 26), qui regroupe les notifications par catégorie et donne à l’utilisateur le contrôle sur leur comportement. Chaque canal définit le niveau d’importance, le son, la vibration et l’apparence visuelle pour toutes les notifications envoyées via celui-ci. Selon Android Developers, NotificationChannel est obligatoire pour toutes les notifications sur Android 8+ — sans lui, les notifications ne s’affichent pas.

Points clés

  • Notification Channel — catégorie de notifications Android 8+ qui gère le comportement d’un groupe de notifications
  • Obligation — sur Android 8+, chaque notification doit avoir un canal, sinon elle ne s’affiche pas
  • Niveau d’importance — le niveau d’importance du canal (IMPORTANCE_HIGH, DEFAULT, LOW, MIN) détermine le mode d’affichage
  • Contrôle utilisateur — l’utilisateur peut configurer chaque canal individuellement dans les paramètres système
  • Groupes de canaux — NotificationChannelGroup regroupe les canaux visuellement dans l’interface des paramètres

Qu’est-ce que Notification Channel ?

Notification Channel est un conteneur logique pour les notifications du même type dans Android 8+ (Oreo). Le développeur crée un canal avec un ID unique, définit ses paramètres, puis envoie chaque notification en spécifiant ce canal. Toutes les notifications d’un même canal héritent de ses réglages.

Avant Android 8, la gestion des notifications était binaire : tout ou rien. L’utilisateur ne pouvait que désactiver complètement toutes les notifications de l’application. Les canaux ont résolu ce problème : vous pouvez maintenant désactiver les notifications « publicitaires » mais conserver les « messages d’amis ».

Après la création d’un canal, son importance peut être modifiée par l’utilisateur à tout moment via Paramètres → Applications → Notifications. Le développeur ne peut pas modifier l’importance par programmation après la création du canal — il s’agit d’une restriction de sécurité d’Android.

Obligation du canal

Sur Android 8+, chaque notification doit être envoyée via un NotificationChannel. Si une application tente d’afficher une notification sans canal, le système l’ignore silencieusement. L’exception concerne les notifications via NotificationCompat avec un canal par défaut, qui est créé automatiquement par la bibliothèque.

Comment fonctionnent les canaux de notification sur Android ?

Un canal de notification est défini par un ensemble de paramètres définis lors de sa création via la classe NotificationChannel. Le paramètre principal est le niveau d’importance, qui détermine la façon dont la notification interagit avec l’utilisateur.

  • ID du canal — une chaîne unique (ex. « messages »), utilisée lors de l’envoi de chaque notification
  • Nom du canal — un nom lisible affiché à l’utilisateur dans les paramètres
  • Description — une explication de l’utilité du canal, affichée dans les paramètres sous le nom
  • Importance — un niveau de IMPORTANCE_NONE à IMPORTANCE_HIGH, détermine le mode d’affichage
  • Son et vibration — configurés séparément pour chaque canal à la création

Après la création, le canal apparaît dans les paramètres de notification du système. L’utilisateur peut modifier l’importance, désactiver le son, la vibration ou bloquer complètement le canal. Toutes les modifications prennent effet immédiatement pour toutes les notifications suivantes.

Paramètres de configuration du canal

Lors de la création d’un NotificationChannel, vous pouvez configurer : le son (personnalisé ou système), la vibration (motif et durée), l’indicateur lumineux (couleur LED), l’icône de badge (setShowBadge), l’écran de verrouillage (setLockscreenVisibility) et le mode Ne pas déranger (setBypassDnd). Ces paramètres sont fixés à la création du canal et ne peuvent être modifiés que par l’utilisateur ultérieurement.

Niveau d’importance : tableau comparatif

Le niveau d’importance est le paramètre principal d’un canal. Il détermine si la notification émettra un son, apparaîtra à l’écran ou sera simplement placée dans l’ombre. L’importance ne doit pas être confondue avec la priorité — l’importance est définie par le canal, et la priorité (setPriority) est ignorée sur Android 8+.

NiveauConstanteComportementSon
HIGHIMPORTANCE_HIGH (4)Affiche une bannière heads-up, apparaît dans l’ombreOui
DEFAULTIMPORTANCE_DEFAULT (3)Apparaît dans l’ombre, sans heads-upOui
LOWIMPORTANCE_LOW (2)Apparaît dans l’ombre sans sonNon
MINIMPORTANCE_MIN (1)Uniquement dans l’ombre, sans son ni vibrationNon
NONEIMPORTANCE_NONE (0)Ne s’affiche pas du toutNon

Pour la plupart des scénarios utilisateur, utilisez IMPORTANCE_DEFAULT (3) — la notification apparaîtra dans l’ombre avec son mais sans bannière contextuelle. Utilisez IMPORTANCE_HIGH uniquement pour les événements critiques : appel entrant, message d’un contact, rappel de minuteur.

Création d’un canal dans le code Android

Le canal est créé une fois au démarrage de l’application ou lors de la première utilisation. La meilleure pratique est de créer tous les canaux au démarrage de l’application, dans la méthode Application.onCreate. La recréation d’un canal existant est sûre — Android ignore l’appel si le canal existe déjà.

kotlin
class App : Application() {

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

    private fun createNotificationChannels() {
        val messagesChannel = NotificationChannel(
            CHANNEL_MESSAGES,
            "Messages",
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Notifications de nouveaux messages"
            enableVibration = true
            setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
        }

        val promoChannel = NotificationChannel(
            CHANNEL_PROMO,
            "Promotions et actualités",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "Notifications marketing et offres spéciales"
            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"
    }
}

Lors de l’envoi d’une notification, spécifiez l’ID du canal via setChannelId (pour NotificationCompat) ou dans le constructeur Notification.Builder. Si le canal avec l’ID spécifié n’existe pas, la notification ne sera pas affichée, mais aucune erreur ne se produira.

Gestion et modification des canaux

Android fournit plusieurs API pour la gestion programmatique des canaux : obtenir la liste, supprimer et vérifier les paramètres actuels. La suppression d’un canal entraîne la suppression de toutes ses notifications de l’historique système.

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

// Obtenir la liste de tous les canaux
val channels = manager.getNotificationChannels()
channels.forEach { channel ->
    Log.d("Canaux", "${channel.id}: ${channel.importance}")
}

// Connaître l’importance actuelle (l’utilisateur a pu la modifier)
val channel = manager.getNotificationChannel(CHANNEL_MESSAGES)
if (channel.importance == NotificationManager.IMPORTANCE_NONE) {
    // L’utilisateur a désactivé le canal
    suggestEnablingChannel()
}

// Supprimer le canal
manager.deleteNotificationChannel(CHANNEL_PROMO)

Après la création d’un canal, le développeur ne peut pas modifier son importance par programmation — il s’agit d’une restriction Android pour protéger l’utilisateur des abus. Si vous devez modifier l’importance d’un canal, créez un nouveau canal avec un ID différent et migrez les notifications.

Migration lors du changement d’importance

Si vous devez modifier l’importance d’un canal existant, créez un nouveau canal avec un ID différent (ex. « messages_v2 ») et commencez à y envoyer des notifications. L’ancien canal peut être supprimé via deleteNotificationChannel — toutes ses notifications seront supprimées de l’historique. Avertissez l’utilisateur de la migration via l’interface de l’application afin qu’il ne perde pas ses réglages.

Groupes de canaux (NotificationChannelGroup)

NotificationChannelGroup regroupe plusieurs canaux en un groupe visuel dans l’interface des paramètres Android. Les groupes aident l’utilisateur à naviguer lorsque l’application utilise 5 canaux ou plus : par exemple, « Social », « Système », « Marketing ».

Un groupe est créé via createNotificationChannelGroup et transmis au canal lors de sa création via la méthode setGroup. La suppression d’un groupe supprime également tous ses canaux. Chaque canal peut appartenir à un seul groupe.

Dans la pratique, les groupes de canaux sont recommandés pour les applications ayant plus de 3 canaux. Ils simplifient la navigation dans les paramètres et réduisent la probabilité que l’utilisateur désactive toutes les notifications à la fois sans comprendre la liste des canaux.

Exemple de création d’un groupe de canaux

Un groupe est créé via createNotificationChannelGroup avec un ID et un nom uniques. Ensuite, chaque canal est attribué au groupe via la méthode setGroup. Dans les paramètres système, le groupe apparaît comme une section avec un en-tête, sous lequel tous les canaux de ce groupe sont répertoriés. Si un groupe est supprimé, tous ses canaux sont également automatiquement supprimés par le système sans possibilité de récupération.

Modèles de conception de canaux

Une conception appropriée des canaux de notification affecte directement l’expérience utilisateur et la fidélisation. Le modèle principal est celui des trois niveaux d’importance : canal critique (IMPORTANCE_HIGH) pour les messages et les appels, standard (IMPORTANCE_DEFAULT) pour les notifications générales et silencieux (IMPORTANCE_LOW) pour le marketing et les actualités. Cette gradation offre à l’utilisateur un choix clair sans surcharge.

Le deuxième modèle est un canal par module fonctionnel. Chaque module principal de l’application (chat, commandes, fil d’actualité, marketing) a son propre canal. S’il y a plus de 5 modules, regroupez-les dans un NotificationChannelGroup. Dans les paramètres système, le groupe apparaît comme une section avec des éléments pliables — cela simplifie la navigation.

Le troisième modèle est un canal développeur. Créez un canal séparé avec IMPORTANCE_MIN pour les notifications de débogage et de service. Les utilisateurs ne les verront pas dans l’ombre, mais le développeur peut analyser les logs via adb. En production, ce canal peut être supprimé ou masqué de l’interface via Intent dans les paramètres.

Le quatrième modèle est le retour d’information sur le canal. Affichez à l’utilisateur dans l’interface quels canaux sont actifs et quelle est leur importance actuelle. Sur Android 8+, vous pouvez obtenir l’état du canal via getNotificationChannel et proposer à l’utilisateur de modifier les paramètres si le canal est désactivé. Ceci est particulièrement important pour les fonctions critiques de l’application.

Foire aux questions

Que se passe-t-il si je ne crée pas de canal sur Android 8+ ?

La notification ne s’affichera pas ni dans l’ombre ni dans le tiroir. Le système ignore silencieusement l’appel de notify(). Exceptions : lors de l’utilisation de NotificationCompat, la bibliothèque crée un canal par défaut, mais son importance est toujours DEFAULT. Il est recommandé de toujours créer vos propres canaux.

Puis-je modifier un canal après sa création ?

Vous pouvez modifier le nom, la description et le son d’un canal. Vous ne pouvez pas modifier l’importance — cette décision est protégée par le système contre le développeur. Si vous devez augmenter l’importance, créez un nouveau canal avec un ID différent et utilisez-le pour les nouvelles notifications. L’utilisateur peut modifier l’importance à tout moment.

Comment vérifier si l’utilisateur a désactivé un canal ?

Utilisez getNotificationChannel et vérifiez l’importance : si la valeur est IMPORTANCE_NONE, le canal est désactivé. Vous pouvez également ouvrir les paramètres système du canal via Intent : Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS avec les paramètres app_package et channel_id.

Combien de canaux peuvent être créés dans une application ?

Il n’y a pas de limites — Android ne fixe pas de limite au nombre de canaux. Cependant, il est recommandé de ne pas créer plus de 5–10 canaux pour ne pas surcharger l’utilisateur de choix. Le minimum optimal est de 2–3 canaux : notifications critiques, régulières et marketing.

Les canaux fonctionnent-ils sur Android 7 et versions antérieures ?

Sur Android 7.1 (API 25) et versions antérieures, les canaux ne sont pas pris en charge. La classe NotificationChannel n’est disponible qu’à partir de l’API 26. Pour la rétrocompatibilité, utilisez NotificationCompat et encapsulez la création du canal dans une condition : if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O).

Résumé

  • Notification Channel — mécanisme de regroupement des notifications Android 8+, obligatoire pour l’affichage
  • Importance — niveau de NONE à HIGH, détermine le son, le heads-up et la visibilité dans l’ombre
  • Gestion — l’utilisateur peut modifier l’importance et le son du canal à tout moment
  • Création — le canal est créé une fois via NotificationManager.createNotificationChannel
  • Importance immuable — le développeur ne peut pas augmenter l’importance après la création du canal
  • Groupes — NotificationChannelGroup combine les canaux pour une navigation pratique dans les paramètres
  • Compatibilité — sur Android 7-, utilisez NotificationCompat avec vérification de la version SDK

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi