Notification Channel — یہ کیا ہے، اقسام اور Android میں کیسے کام کرتا ہے

مصنف: IT Sectr اشاعت: 2026-03-20 مطالعے کا وقت: 8 منٹ

Notification Channel (اطلاع کا چینل) ایک Android میکانزم ہے، جو ورزن 8.0 (API 26) میں متعارف کرایا گیا، جو اطلاعات کو زمرے کے اعتبار سے گروپ کرتا ہے اور صارف کو ان کے رویے پر قابو دیتا ہے۔ ہر چینل اپنے ذریعے بھیجے گئے تمام اطلاعات کے لیے اہمیت کی سطح، آواز، وبریشن اور بصری ظہور کو متعین کرتا ہے۔ Android Developers کے مطابق، Android 8+ پر تمام اطلاعات کے لیے NotificationChannel لازمی ہے — اس کے بغیر اطلاعات ظاہر نہیں ہوتیں۔

اہم نکات

  • 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 ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں