Notification Channel — यह क्या है, प्रकार और Android में कैसे काम करते हैं

लेखक: IT Sectr प्रकाशित: 2026-03-20 पढ़ने का समय: 8 मिनट

Notification Channel (नॉटिफिकेशन चैनल) एक Android तंत्र है, जो संस्करण 8.0 (API 26) में पेश किया गया, जो नॉटिफिकेशन को श्रेणियों में विभाजित करता है और उपयोगकर्ता को उनके व्यवहार पर नियंत्रण देता है। प्रत्येक चैनल उसके माध्यम से भेजे गए सभी नॉटिफिकेशन के लिए महत्व स्तर, ध्वनि, कंपन और दृश्य स्वरूप निर्धारित करता है। Android Developers के अनुसार, NotificationChannel Android 8+ पर सभी नॉटिफिकेशन के लिए अनिवार्य है — इसके बिना नॉटिफिकेशन प्रदर्शित नहीं होते।

मुख्य बातें

  • Notification Channel — Android 8+ नॉटिफिकेशन श्रेणी जो नॉटिफिकेशन के समूह के व्यवहार का प्रबंधन करती है
  • अनिवार्यता — Android 8+ पर, प्रत्येक नॉटिफिकेशन में एक चैनल होना चाहिए, अन्यथा यह प्रदर्शित नहीं होता
  • महत्व स्तर — चैनल का महत्व स्तर (IMPORTANCE_HIGH, DEFAULT, LOW, MIN) प्रदर्शन का तरीका निर्धारित करता है
  • उपयोगकर्ता नियंत्रण — उपयोगकर्ता सिस्टम सेटिंग्स में प्रत्येक चैनल को अलग-अलग कॉन्फ़िगर कर सकता है
  • चैनल समूह — NotificationChannelGroup सेटिंग्स इंटरफ़ेस में चैनल को दृश्य रूप से समूहबद्ध करता है

Notification Channel क्या है?

Notification Channel Android 8+ (Oreo) में एक ही प्रकार के नॉटिफिकेशन के लिए एक तार्किक कंटेनर है। डिवेलपर एक अनोखे ID के साथ एक चैनल बनाता है, उसके पैरामीटर सेट करता है, और फिर प्रत्येक नॉटिफिकेशन को इस चैनल को निर्दिष्ट करते हुए भेजता है। एक ही चैनल में सभी नॉटिफिकेशन उसकी सेटिंग्स को प्राप्त करते हैं।

Android 8 से पहले, नॉटिफिकेशन प्रबंधन द्विआधारी था: सब या कुछ नहीं। उपयोगकर्ता केवल एप्लिकेशन के सभी नॉटिफिकेशन को पूर्ण रूप से बंद कर सकता था। चैनल ने यह समस्या हल की: अब आप “विज्ञापन” सूचनाओं को बंद कर सकते हैं लेकिन “दोस्तों के संदेशों” को रख सकते हैं।

चैनल बनाने के बाद, उपयोगकर्ता सेटिंग्स → एप्लिकेशन → नॉटिफिकेशन के माध्यम से किसी भी समय इसकी महत्वपूर्णता बदल सकता है। डिवेलपर चैनल बनाने के बाद प्रोग्रामेटिकाली रूप से महत्व नहीं बदल सकता — यह एक Android सुरक्षा प्रतिबंध है।

चैनल की अनिवार्यता

Android 8+ पर, प्रत्येक नॉटिफिकेशन को NotificationChannel के माध्यम से भेजा जाना चाहिए। यदि कोई एप्लिकेशन बिना चैनल के नॉटिफिकेशन दिखाने की कोशिश करता है, तो सिस्टम चुपचाप उसे अनिग्नोरा कर देता है। अपवाद NotificationCompat के माध्यम से डिफ़ॉल्ट चैनल के साथ नॉटिफिकेशन है, जो लाइब्रेरी द्वारा स्वचालित रूप से बनाया जाता है।

Android में नॉटिफिकेशन चैनल कैसे काम करते हैं?

एक नॉटिफिकेशन चैनल पैरामीटर के एक समूह द्वारा परिभाषित किया जाता है जो NotificationChannel वर्ग के माध्यम से इसे बनाते समय निर्धारित किए जाते हैं। मुख्य पैरामीटर महत्व स्तर है, जो यह निर्धारित करता है कि नॉटिफिकेशन उपयोगकर्ता के साथ कैसे इंटरैक्ट करता है।

  • चैनल ID — एक अनोखा स्ट्रिंग (उदाहरण के लिए, “messages”), प्रत्येक नॉटिफिकेशन भेजते समय उपयोग किया जाता है
  • चैनल का नाम — एक पढ़ने में आने वाला नाम जो सेटिंग्स में उपयोगकर्ता को दिखाया जाता है
  • विवरण — एक स्पष्टीकरण कि चैनल किस लिए है, नाम के नीचे सेटिंग्स में दिखाया जाता है
  • महत्व — IMPORTANCE_NONE से IMPORTANCE_HIGH तक का स्तर, प्रदर्शन का तरीका निर्धारित करता है
  • ध्वनि और कंपन — निर्माण के समय प्रत्येक चैनल के लिए अलग से कॉन्फ़िगर किया जाता है

निर्माण के बाद, चैनल सिस्टम नॉटिफिकेशन सेटिंग्स में दिखाई देता है। उपयोगकर्ता महत्व को बदल सकता है, ध्वनि बंद कर सकता है, कंपन बंद कर सकता है, या चैनल को पूर्ण रूप से अवरुद्ध कर सकता है। सभी परिवर्तन बाद के सभी नॉटिफिकेशन पर तुरंत प्रभावी होते हैं।

चैनल कॉन्फ़िगरेशन पैरामीटर

NotificationChannel बनाते समय, आप कॉन्फ़िगर कर सकते हैं: ध्वनि (कस्टम या सिस्टम), कंपन (पैटर्न और अवधि), प्रकाश संकेतक (LED रंग), बैज आइकन (setShowBadge), लॉक स्क्रीन (setLockscreenVisibility) और डॉ नॉट डिस्टर्ब मोड (setBypassDnd)। ये पैरामीटर चैनल बनने पर निर्दिष्ट हो जाते हैं और बाद में केवल उपयोगकर्ता द्वारा बदले जा सकते हैं।

महत्व स्तर: तुलनात्मक तालिका

महत्व स्तर चैनल का मुख्य पैरामीटर है। यह निर्धारित करता है कि नॉटिफिकेशन में ध्वनि होगी या नहीं, स्क्रीन पर दिखाई देगा या नहीं, या बस शेड में रखा जाएगा। महत्व को प्राथमिकता के साथ भ्रमित नहीं होना चाहिए — महत्व चैनल द्वारा निर्धारित किया जाता है, और प्राथमिकता (setPriority) को Android 8+ पर अनिग्नोरा किया जाता है।

स्तरस्थिरांकव्यवहारध्वनि
HIGHIMPORTANCE_HIGH (4)heads-up बैनर दिखाता है, शेड में दिखाई देता हैहाँ
DEFAULTIMPORTANCE_DEFAULT (3)शेड में दिखाई देता है, बिना heads-up केहाँ
LOWIMPORTANCE_LOW (2)बिना ध्वनि के शेड में दिखाई देता हैनहीं
MINIMPORTANCE_MIN (1)केवल शेड में, बिना ध्वनि या कंपन केनहीं
NONEIMPORTANCE_NONE (0)बिल्कुल प्रदर्शित नहीं होतानहीं

अधिकांश उपयोगकर्ता परिदृश्यों के लिए, IMPORTANCE_DEFAULT (3) का उपयोग करें — नॉटिफिकेशन ध्वनि के साथ शेड में दिखाई देगा लेकिन पॉप-अप बैनर के बिना। IMPORTANCE_HIGH का उपयोग केवल महत्वपूर्ण घटनाओं के लिए करें: इनकमिंग कॉल, किसी संपर्क से संदेश, टाइमर रिमाइंडर।

Android कोड में चैनल बनाना

चैनल एक बार बनाया जाता है जब एप्लिकेशन शुरू होता है या पहली बार उपयोग किया जाता है। सबसे अच्छा अभ्यास एप्लिकेशन स्टार्टअप पर, Application.onCreate मेथड में सभी चैनल बनाना है। किसी मौजूदा चैनल को फिर से बनाना सुरक्षित है — यदि चैनल पहले से मौजूद है तो Android कॉल को अनिग्नोरा कर देता है।

kotlin
class App : Application() {

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

    private fun createNotificationChannels() {
        val messagesChannel = NotificationChannel(
            CHANNEL_MESSAGES,
            "संदेश",
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "नए संदेश की सूचनाएँ"
            enableVibration = true
            setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
        }

        val promoChannel = NotificationChannel(
            CHANNEL_PROMO,
            "प्रोमोशन और समाचार",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "विपणन सूचनाएँ और विशेष ऑफर"
            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"
    }
}

नॉटिफिकेशन भेजते समय, setChannelId (NotificationCompat के लिए) या Notification.Builder कंस्ट्रक्टर में चैनल ID निर्दिष्ट करें। यदि निर्दिष्ट ID वाला चैनल मौजूद नहीं है, तो नॉटिफिकेशन नहीं दिखाया जाएगा, लेकिन कोई त्रुटि नहीं होगी।

चैनल प्रबंधन और संपादन

Android चैनल प्रबंधन के लिए कई API प्रदान करता है: सूची प्राप्त करना, हटाना और वर्तमान सेटिंग्स की जांच करना। चैनल को हटाने से उसके सभी नॉटिफिकेशन सिस्टम इतिहास से हटा दिए जाते हैं।

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

// सभी चैनल की सूची प्राप्त करें
val channels = manager.getNotificationChannels()
channels.forEach { channel ->
    Log.d("Channels", "${channel.id}: ${channel.importance}")
}

// वर्तमान महत्व जानें (हो सकता है उपयोगकर्ता ने बदल दिया हो)
val channel = manager.getNotificationChannel(CHANNEL_MESSAGES)
if (channel.importance == NotificationManager.IMPORTANCE_NONE) {
    // उपयोगकर्ता ने चैनल को निष्क्रिय कर दिया
    suggestEnablingChannel()
}

// चैनल हटाएं
manager.deleteNotificationChannel(CHANNEL_PROMO)

चैनल बनने के बाद, डिवेलपर नहीं कर सकता प्रोग्रामेटिकाली रूप से इसकी महत्वपूर्णता बदल सकता — यह दुरुपयोग से उपयोगकर्ता की रक्षा के लिए Android प्रतिबंध है। यदि आपको किसी चैनल की महत्वपूर्णता बदलनी है, तो एक अलग ID के साथ एक नया चैनल बनाएं और नॉटिफिकेशन को स्थानांतरित करें।

महत्व बदलने पर स्थानांतरण

यदि आपको किसी मौजूदा चैनल की महत्वपूर्णता बदलनी है, तो एक अलग ID (उदाहरण के लिए, “messages_v2”) के साथ एक नया चैनल बनाएं और उसमें नॉटिफिकेशन भेजना शुरू करें। पुराने चैनल को deleteNotificationChannel के माध्यम से हटाया जा सकता है — इसके सभी नॉटिफिकेशन इतिहास से हटा दिए जाएंगे। उपयोगकर्ता को एप्लिकेशन इंटरफ़ेस के माध्यम से स्थानांतरण के बारे में चेतावनी दें ताकि वह अपनी सेटिंग्स न खोएं।

चैनल समूह (NotificationChannelGroup)

NotificationChannelGroup एक से अधिक चैनल को Android सेटिंग्स इंटरफ़ेस में एक दृश्य समूह में संयोजित करता है। समूह उपयोगकर्ता को नेविगेट करने में मदद करते हैं जब एप्लिकेशन 5+ चैनल का उपयोग करता है: उदाहरण के लिए, “सामाजिक”, “सिस्टम”, “विपणन”।

एक समूह createNotificationChannelGroup के माध्यम से बनाया जाता है और setGroup विधि के माध्यम से निर्माण के समय चैनल को दिया जाता है। समूह को हटाने से उसके सभी चैनल भी हटा दिए जाते हैं। प्रत्येक चैनल केवल एक समूह से संबंधित हो सकता है।

व्यावहारिक रूप से, चैनल समूह की अनुशंसा की जाती है उन एप्लिकेशन के लिए जिनमें 3 से अधिक चैनल हों। वे सेटिंग्स में नेविगेशन को सरल बनाते हैं और इस संभावना को कम करते हैं कि उपयोगकर्ता चैनल सूची को समझे बिना एक साथ सभी नॉटिफिकेशन को निष्क्रिय कर दे।

चैनल समूह बनाने का उदाहरण

एक समूह createNotificationChannelGroup के माध्यम से एक अनोखे ID और नाम के साथ बनाया जाता है। फिर प्रत्येक चैनल setGroup विधि के माध्यम से समूह को सौंपा जाता है। सिस्टम सेटिंग्स में, समूह एक शीर्षक के साथ एक अनुभाग के रूप में दिखाई देता है, जिसके तहत इस समूह के सभी चैनल सूचीबद्ध होते हैं। यदि किसी समूह को हटाया जाता है, तो उसके सभी चैनल भी सिस्टम द्वारा पुनर्स्थापन की संभावना के बिना स्वचालित रूप से हटा दिए जाते हैं।

चैनल डिजाइन पैटर्न

उचित नॉटिफिकेशन चैनल डिजाइन सीधे उपयोगकर्ता अनुभव और प्रतिधारण को प्रभावित करता है। मुख्य पैटर्न तीन महत्व स्तर है: संकटपूर्ण चैनल (IMPORTANCE_HIGH) संदेशों और कॉल के लिए, मानक (IMPORTANCE_DEFAULT) सामान्य नॉटिफिकेशन के लिए, और शांत (IMPORTANCE_LOW) विपणन और समाचार के लिए। यह ग्रेडेशन उपयोगकर्ता को बिना किसी बोझ के एक स्पष्ट विकल्प देता है।

दूसरा पैटर्न प्रति कार्यात्मक मॉड्यूल एक चैनल है। एप्लिकेशन का प्रत्येक प्रमुख मॉड्यूल (चैट, ऑर्डर, फीड, विपणन) को अपना चैनल मिलता है। यदि 5 से अधिक मॉड्यूल हैं, तो उन्हें एक NotificationChannelGroup में संयोजित करें। सिस्टम सेटिंग्स में, समूह कोल्लेप्सिबल आइटम के साथ एक अनुभाग के रूप में दिखाई देता है — यह नेविगेशन को सरल बनाता है।

तीसरा पैटर्न एक डिवेलपर चैनल है। डिबग और सर्विस नॉटिफिकेशन के लिए IMPORTANCE_MIN के साथ एक अलग चैनल बनाएं। उपयोगकर्ता उन्हें शेड में नहीं देखेंगे, लेकिन डिवेलपर adb के माध्यम से लॉग का विश्लेषण कर सकता है। प्रोडक्शन में, इस चैनल को सेटिंग्स में Intent के माध्यम से हटाया या छुपाया जा सकता है।

चौथा पैटर्न चैनल फ़ीडबैक है। उपयोगकर्ता को इंटरफ़ेस में दिखाएं कि कौन से चैनल सक्रिय हैं और उनकी वर्तमान महत्वपूर्णता क्या है। Android 8+ पर, आप getNotificationChannel के माध्यम से चैनल की स्थिति प्राप्त कर सकते हैं और यदि चैनल निष्क्रिय है तो उपयोगकर्ता को सेटिंग्स बदलने की पेशकश करें। यह एप्लिकेशन के महत्वपूर्ण कार्यों के लिए विशेष रूप से महत्वपूर्ण है।

अक्सर पूछे जाने वाले प्रश्न

यदि मैं Android 8+ पर चैनल नहीं बनाता हूं तो क्या होगा?

नॉटिफिकेशन दिखाया नहीं जाएगा न तो शेड में और न ही ट्रे में। सिस्टम चुपचाप notify() कॉल को अनिग्नोरा कर देता है। अपवाद: NotificationCompat का उपयोग करने पर, लाइब्रेरी एक डिफ़ॉल्ट चैनल बनाती है, लेकिन इसकी महत्वपूर्णता हमेशा DEFAULT होती है। हमेशा अपने स्वयं के चैनल बनाने की अनुशंसा दी जाती है।

क्या मैं चैनल बनाने के बाद उसे बदल सकता हूं?

आप बदल सकते हैं चैनल का नाम, विवरण और ध्वनि। आप महत्वपूर्णता नहीं बदल सकते — यह निर्णय डिवेलपर से सिस्टम द्वारा संरक्षित है। यदि आपको महत्वपूर्णता बढ़ानी है, तो एक अलग ID के साथ एक नया चैनल बनाएं और नए नॉटिफिकेशन के लिए उसका उपयोग करें। उपयोगकर्ता किसी भी समय महत्वपूर्णता बदल सकता है।

मैं कैसे जांच करूं कि उपयोगकर्ता ने चैनल को निष्क्रिय कर दिया है?

getNotificationChannel का उपयोग करें और महत्वपूर्णता की जांच करें: यदि मान IMPORTANCE_NONE है, तो चैनल निष्क्रिय है। आप Intent: Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS के माध्यम से app_package और channel_id पैरामीटर के साथ चैनल की सिस्टम सेटिंग्स खोल सकते हैं।

एक एप्लिकेशन में कितने चैनल बनाए जा सकते हैं?

कोई सीमा नहीं है — Android चैनल की संख्या पर कोई सीमा निर्धारित नहीं करता है। हालांकि, उपयोगकर्ता को विकल्पों से अंथित न करने के लिए 5–10 से अधिक चैनल न बनाने की अनुशंसा दी जाती है। इष्टतम न्यूनतम 2–3 चैनल है: महत्वपूर्ण सूचनाएँ, नियमित और विपणन।

क्या चैनल Android 7 और उससे नीचे काम करते हैं?

Android 7.1 (API 25) और उससे नीचे पर, चैनल समर्थित नहीं हैं। NotificationChannel क्लास केवल API 26 से उपलब्ध है। पीछे की अनुकूलता के लिए, NotificationCompat का उपयोग करें और चैनल निर्माण को एक शर्त में लपेटें: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O).

सारांश

  • Notification Channel — Android 8+ नॉटिफिकेशन समूहीकरण तंत्र, प्रदर्शन के लिए अनिवार्य
  • महत्व — NONE से HIGH तक का स्तर, ध्वनि, heads-up और शेड दृश्यता निर्धारित करता है
  • प्रबंधन — उपयोगकर्ता किसी भी समय महत्व और चैनल की ध्वनि बदल सकता है
  • निर्माण — चैनल एक बार NotificationManager.createNotificationChannel के माध्यम से बनाया जाता है
  • अपरिवर्तनीय महत्व — डिवेलपर चैनल बनाने के बाद महत्व नहीं बढ़ा सकता
  • समूह — NotificationChannelGroup सेटिंग्स में सुविधाजनक नेविगेशन के लिए चैनल को संयोजित करता है
  • अनुकूलता — Android 7- पर SDK संस्करण जाँच के साथ NotificationCompat का उपयोग करें

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें