Notification Channel in Android Kotlin




Step 1: Create AppController class and extends from Application class then declared this class name into the application tag of the android manifest file

AppController.kt

class AppController : Application() {

    companion object {
        var CHANNEL_1_ID = "chennal1"
        val CHENNEL_2_ID = "ServiceChannel"
    }

    override fun onCreate() {
        super.onCreate()

        createNotificationChennal()

    }

    fun createNotificationChennal() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val notificationChannel = NotificationChannel(
                CHANNEL_1_ID,
                "CHANNEL 1",
                NotificationManager.IMPORTANCE_DEFAULT
            )
            notificationChannel.description = "Channel 1 description"
            notificationChannel.enableLights(true)
            notificationChannel.enableVibration(true)
            notificationChannel.lightColor = Color.GREEN
            notificationChannel.setShowBadge(true)

            val notificationChennal2 =
                NotificationChannel(CHENNEL_2_ID, "CHENNAL 2", NotificationManager.IMPORTANCE_HIGH)
            notificationChennal2.description = "Notification from service"
            notificationChennal2.setShowBadge(true)

            val manager: NotificationManager =
                getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
//            manager.createNotificationChannel(notificationChannel)
//            manager.createNotificationChannel(notificationChennal2)

            var list: List =
                arrayListOf(notificationChannel, notificationChennal2)
            manager.createNotificationChannels(list)
        }

    }

}



Step 2: Create a notification method in MainActivity file with the notification channel

MainActivity.kt

button2.setOnClickListener {
       createNotification()
}


//Create location notification using channel id
    fun createNotification() {
        count++
        val intent = Intent(this, MainActivity::class.java)
        val pendingIntent: PendingIntent = PendingIntent.getActivity(this, 1, intent, 0)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val notification: Notification = Notification.Builder(this, CHANNEL_1_ID)
                .setContentTitle("Notification Title $count")
                .setContentText("Notification text")
                .setSmallIcon(R.drawable.ic_launcher_background)
                .setLargeIcon(
                    BitmapFactory.decodeResource(
                        this.resources,
                        R.drawable.ic_launcher_foreground
                    )
                )
                .setContentIntent(pendingIntent)
                .build()

            val manager: NotificationManager =
                getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager;
            manager.notify(1, notification)
        }
    }



You can see full source code from below link

https://github.com/AndroidManikandan5689/Notification-in-Foreground-Service-Android

Demo screenshots:












Comments

Popular posts from this blog

Your build is currently configured to use incompatible Java 21.0.3 and Gradle 8.2.1. Cannot sync the project.

Google Assistant Implementation in Android application with app actions