Notification Channel — ano ito, anu-ano ang mga uri at paano gumagana sa Android

May-akda: IT Sectr Nai-publish: 2026-03-20 Oras ng pagbabasa: 8 min

Notification Channel (channel ng notification) — ay isang mekanismo ng Android, na ipinakilala sa bersyon 8.0 (API 26), na nagpapangkat ng mga notification ayon sa kategorya at nagbibigay sa user ng kontrol sa kanilang pag-uugali. Ang bawat channel ay tumutukoy sa antas ng kahalagahan, tunog, panginginig ng boses, at visual na anyo para sa lahat ng mga notification na ipinadala sa pamamagitan nito. Ayon sa Android Developers, ang NotificationChannel ay kinakailangan para sa lahat ng notification sa Android 8+ — kung wala ito, hindi maipapakita ang mga notification.

Mga Pangunahing Punto

  • Notification Channel — kategorya ng notification ng Android 8+ na namamahala sa pag-uugali ng isang grupo ng mga notification
  • Pagiging sapilitan — sa Android 8+ bawat notification ay dapat may channel, kung hindi, hindi ito maipapakita
  • Importance Level — antas ng kahalagahan ng channel (IMPORTANCE_HIGH, DEFAULT, LOW, MIN) ay tumutukoy sa paraan ng pagpapakita
  • Kontrol ng user — maaaring i-customize ng user ang bawat channel nang paisa-isa sa mga setting ng system
  • Mga grupo ng channel — Pinagsasama ng NotificationChannelGroup ang mga channel nang biswal sa interface ng mga setting

Ano ang Notification Channel?

Notification Channel — ay isang lohikal na lalagyan para sa mga notification ng parehong uri sa Android 8+ (Oreo). Ang developer ay lumikha ng isang channel na may natatanging ID, itinatakda ang mga parameter nito, at pagkatapos ay ipinapadala ang bawat notification na may pagtukoy sa channel na ito. Ang lahat ng notification sa isang channel ay nagmamana ng mga setting nito.

Bago ang Android 8, ang pamamahala ng notification ay binary: lahat o wala. Maaari lamang ganap na i-off ng user ang mga notification ng app. Nalutas ng mga channel ang problemang ito: ngayon ay maaaring i-off ang mga notification sa advertising habang pinapanatili ang mga mensahe mula sa mga kaibigan.

Pagkatapos gawin ang channel, ang kahalagahan (importance) nito ay maaaring baguhin ng user anumang oras sa pamamagitan ng Mga Setting → Mga App → Mga Notification. Hindi mababago ng developer ang importance nang programmatically pagkatapos gawin ang channel — ito ay isang paghihigpit sa seguridad ng Android.

Sapilitan ng mga channel

Sa Android 8+, ang bawat notification ay dapat ipadala sa pamamagitan ng NotificationChannel. Kung susubukan ng app na magpakita ng notification na walang channel — tahimik itong babalewalain ng system. Pagbubukod — mga notification sa pamamagitan ng NotificationCompat na may default na channel na awtomatikong ginagawa ng library.

Paano gumagana ang mga channel ng notification sa Android?

Ang channel ng notification ay tinutukoy ng isang set ng mga parameter na itinatakda kapag ginagawa ito sa pamamagitan ng klase ng NotificationChannel. Ang pangunahing parameter — importance level, na tumutukoy kung paano nakikipag-ugnayan ang notification sa user.

  • ID ng channel — natatanging string (halimbawa, “messages”), ginagamit kapag nagpapadala ng bawat notification
  • Pangalan ng channel — nababasang pangalan, ipinapakita sa user sa mga setting
  • Paglalarawan — paliwanag kung para saan ang channel, ipinapakita sa mga setting sa ilalim ng pangalan
  • Importance — antas mula IMPORTANCE_NONE hanggang IMPORTANCE_HIGH, tumutukoy sa paraan ng pagpapakita
  • Tunog at panginginig ng boses — naka-configure nang hiwalay para sa bawat channel kapag ginagawa

Pagkatapos gawin, lilitaw ang channel sa mga setting ng system para sa mga notification. Maaaring baguhin ng user ang importance, i-off ang tunog, panginginig ng boses, o ganap na i-block ang channel. Lahat ng pagbabago ay magkakabisa kaagad para sa lahat ng susunod na notification.

Mga parameter ng configuration ng channel

Kapag gumagawa ng NotificationChannel, maaaring i-configure: tunog (custom o system), panginginig ng boses (pattern at tagal), light indicator (kulay ng LED), badge (setShowBadge), visibility sa naka-lock na screen (setLockscreenVisibility) at Huwag Istorbohin mode (setBypassDnd). Ang mga parameter na ito ay naayos kapag ginawa ang channel at maaari lamang baguhin ng user sa ibang pagkakataon.

Importance Level: talahanayan ng paghahambing

Antas ng kahalagahan (importance) — ang pangunahing parameter ng channel. Tinutukoy nito kung ang notification ay tutugtog ng tunog, lilitaw sa screen, o ilalagay lamang sa anino. Ang kahalagahan ay hindi dapat ipagkamali sa priority — ang importance ay itinatakda ng channel, habang ang priority (setPriority) ay binabalewala sa Android 8+.

AntasConstantPag-uugaliTunog
HIGHIMPORTANCE_HIGH (4)Nagpapakita ng heads-up banner, lumilitaw sa panelOo
DEFAULTIMPORTANCE_DEFAULT (3)Lumilitaw sa panel, walang heads-upOo
LOWIMPORTANCE_LOW (2)Lumilitaw sa panel nang walang tunogHindi
MINIMPORTANCE_MIN (1)Sa anino lamang, walang tunog at panginginig ng bosesHindi
NONEIMPORTANCE_NONE (0)Hindi talaga ipinapakitaHindi

Para sa karamihan ng mga senaryo ng user, gamitin ang IMPORTANCE_DEFAULT (3) — lilitaw ang notification sa panel na may tunog, ngunit walang pop-up banner. Gamitin ang IMPORTANCE_HIGH lamang para sa mga kritikal na pangyayari: papasok na tawag, mensahe mula sa kausap, paalala na may timer.

Paglikha ng channel sa Android code

Ang channel ay ginagawa nang isang beses — kapag sinimulan ang app o sa unang paggamit. Ang pinakamahusay na kasanayan ay gawin ang lahat ng channel kapag sinimulan ang app, sa pamamaraan na Application.onCreate. Ang muling paggawa ng umiiral na channel ay ligtas — babalewalain ng Android ang tawag kung mayroon na ang channel.

kotlin
class App : Application() {

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

    private fun createNotificationChannels() {
        val messagesChannel = NotificationChannel(
            CHANNEL_MESSAGES,
            "Mga Mensahe",
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Mga notification tungkol sa mga bagong mensahe"
            enableVibration = true
            setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
        }

        val promoChannel = NotificationChannel(
            CHANNEL_PROMO,
            "Mga promo at balita",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "Mga notification sa marketing at mga espesyal na alok"
            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"
    }
}

Kapag nagpapadala ng notification, tukuyin ang ID ng channel sa pamamagitan ng setChannelId (para sa NotificationCompat) o sa constructor ng Notification.Builder. Kung ang channel na may tinukoy na ID ay hindi umiiral — ang notification ay hindi ipapakita, ngunit walang error na magaganap.

Pamamahala at pag-edit ng mga channel

Nagbibigay ang Android ng ilang API para sa programmatic na pamamahala ng channel: pagkuha ng listahan, pagtanggal, at pagsuri sa kasalukuyang mga setting. Ang pagtanggal ng channel ay nagdudulot na ang lahat ng notification nito ay tatanggalin ng system mula sa kasaysayan.

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

// Kunin ang listahan ng lahat ng channel
val channels = manager.getNotificationChannels()
channels.forEach { channel ->
    Log.d("Mga Channel", "${channel.id}: ${channel.importance}")
}

// Alamin ang kasalukuyang importance (maaaring binago ng user)
val channel = manager.getNotificationChannel(CHANNEL_MESSAGES)
if (channel.importance == NotificationManager.IMPORTANCE_NONE) {
    // Na-off ng user ang channel
    suggestEnablingChannel()
}

// Tanggalin ang channel
manager.deleteNotificationChannel(CHANNEL_PROMO)

Pagkatapos gawin ang channel, ang developer ay hindi maaaring baguhin ang importance nito nang programmatically — ito ay isang paghihigpit ng Android upang protektahan ang user mula sa pang-aabuso. Kung kailangang baguhin ang kahalagahan ng channel, gumawa ng bagong channel na may ibang ID at i-migrate ang mga notification.

Migrasyon kapag nagbabago ng importance

Kung kinakailangan baguhin ang kahalagahan ng isang umiiral na channel, gumawa ng bagong channel na may ibang ID (halimbawa, “messages_v2”) at simulan ang pagpapadala ng mga notification dito. Ang lumang channel ay maaaring tanggalin sa pamamagitan ng deleteNotificationChannel — lahat ng notification nito ay tatanggalin mula sa kasaysayan. Abisuhan ang user tungkol sa migrasyon sa pamamagitan ng interface ng app upang hindi mawala ang kanyang mga setting.

Mga grupo ng channel (NotificationChannelGroup)

Pinagsasama ng NotificationChannelGroup ang maramihang channel sa isang visual na grupo sa interface ng mga setting ng Android. Tinutulungan ng mga grupo ang user na mag-navigate kapag ang app ay gumagamit ng 5+ channel: halimbawa, “Panlipunan”, “Sistema”, “Marketing”.

Ang grupo ay ginagawa sa pamamagitan ng createNotificationChannelGroup at ipinapasa sa channel kapag ginagawa ito sa pamamagitan ng setGroup method. Ang pagtanggal ng grupo ay nagtatanggal din ng lahat ng channel nito. Ang bawat channel ay maaari lamang mapabilang sa isang grupo.

Sa pagsasagawa, ang mga grupo ng channel ay inirerekomenda para sa mga app na may higit sa 3 channel. Pinapasimple nila ang nabigasyon sa mga setting at binabawasan ang posibilidad na i-off ng user ang lahat ng notification nang sabay-sabay nang hindi nauunawaan ang listahan ng channel.

Halimbawa ng paggawa ng grupo ng channel

Ang grupo ay ginagawa sa pamamagitan ng createNotificationChannelGroup na may natatanging ID at pangalan. Pagkatapos ang bawat channel ay ikinakabit sa grupo sa pamamagitan ng setGroup method. Sa mga setting ng system, ang grupo ay ipinapakita bilang isang seksyon na may pamagat, sa ilalim nito ay matatagpuan ang lahat ng channel ng grupong ito. Kung ang grupo ay tinanggal, ang lahat ng channel nito ay awtomatikong tatanggalin ng system nang walang posibilidad ng pagbawi.

Mga pattern ng disenyo ng channel

Ang tamang disenyo ng mga channel ng notification ay direktang nakakaapekto sa karanasan ng user at retention. Ang pangunahing pattern — tatlong antas ng kahalagahan: kritikal na channel (IMPORTANCE_HIGH) para sa mga mensahe at tawag, standard (IMPORTANCE_DEFAULT) para sa pangkalahatang notification, at tahimik (IMPORTANCE_LOW) para sa marketing at balita. Ang ganitong gradasyon ay nagbibigay sa user ng malinaw na pagpili nang walang labis na pagkarga.

Ang pangalawang pattern — channel ayon sa functional na module. Ang bawat malaking module ng app (chat, order, feed, marketing) ay nakakakuha ng sarili nitong channel. Kung ang mga module ay higit sa 5, pagsamahin ang mga ito sa NotificationChannelGroup. Sa mga setting ng system, ang grupo ay ipinapakita bilang isang seksyon na may mga maaaring itago na elemento — pinapasimple nito ang nabigasyon.

Ang pangatlong pattern — channel para sa developer. Gumawa ng hiwalay na channel na may IMPORTANCE_MIN para sa pag-debug at mga notification ng serbisyo. Hindi sila makikita ng mga user sa panel, ngunit maaaring suriin ng developer ang mga log sa pamamagitan ng adb. Sa produksyon, ang channel na ito ay maaaring tanggalin o itago mula sa interface sa pamamagitan ng Intent sa mga setting.

Ang pang-apat na pattern — feedback tungkol sa mga channel. Ipakita sa user sa interface kung aling mga channel ang aktibo at kung ano ang kanilang kasalukuyang importance. Sa Android 8+, ang status ng channel ay maaaring makuha sa pamamagitan ng getNotificationChannel at mag-alok sa user na baguhin ang mga setting kung ang channel ay naka-off. Ito ay lalong mahalaga para sa mga kritikal na function ng app.

Mga Madalas Itanong

Ano ang mangyayari kung hindi gumawa ng channel sa Android 8+?

Ang notification ay hindi maipapakita sa panel o sa anino. Tahimik na babalewalain ng system ang tawag na notify(). Mga pagbubukod: kapag gumagamit ng NotificationCompat, ang library ay gumagawa ng default na channel, ngunit ang importance nito ay palaging DEFAULT. Inirerekomenda na palaging gumawa ng sarili mong mga channel.

Maaari bang baguhin ang channel pagkatapos itong gawin?

Maaaring baguhin ang pangalan, paglalarawan, at tunog ng channel. Hindi maaaring baguhin ang importance — ang desisyong ito ay protektado ng system laban sa developer. Kung kailangang dagdagan ang kahalagahan — gumawa ng bagong channel na may ibang ID at gamitin ito para sa mga bagong notification. Maaaring baguhin ng user ang importance anumang oras.

Paano suriin kung na-off ng user ang channel?

Gamitin ang getNotificationChannel at suriin ang importance: kung ang halaga ay IMPORTANCE_NONE, ang channel ay naka-off. Maaari mo ring buksan ang mga setting ng system ng channel sa pamamagitan ng Intent: Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS na may mga parameter na app_package at channel_id.

Ilang channel ang maaaring gawin sa isang app?

Walang mga limitasyon — hindi nagtatakda ang Android ng limitasyon sa bilang ng mga channel. Gayunpaman, inirerekomenda na huwag gumawa ng higit sa 5–10 channel upang hindi ma-overload ang user sa pagpili. Ang pinakamainam na minimum ay 2–3 channel: kritikal na notification, ordinaryo, at marketing.

Gumagana ba ang mga channel sa Android 7 at mas luma?

Sa Android 7.1 (API 25) at mas luma ang mga channel ay hindi sinusuportahan. Ang klase ng NotificationChannel ay magagamit lamang mula sa API 26. Para sa backward compatibility, gamitin ang NotificationCompat at balutin ang paggawa ng channel sa isang kondisyon na if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O).

Buod

  • Notification Channel — mekanismo ng pagpapangkat ng notification ng Android 8+, sapilitan para sa pagpapakita
  • Importance — antas mula NONE hanggang HIGH, tumutukoy sa tunog, heads-up, at visibility sa panel
  • Pamamahala — maaaring baguhin ng user ang importance at tunog ng channel anumang oras
  • Paglikha — ang channel ay ginagawa sa pamamagitan ng NotificationManager.createNotificationChannel nang isang beses
  • Hindi pagbabago ng importance — hindi maaaring dagdagan ng developer ang kahalagahan pagkatapos gawin ang channel
  • Mga Grupo — Pinagsasama ng NotificationChannelGroup ang mga channel para sa madaling nabigasyon sa mga setting
  • Pagiging tugma — sa Android 7- gamitin ang NotificationCompat na may pagsusuri sa bersyon ng SDK

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din