Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


Barra lateral

Proyecto Integral de Ingeniería del Software
Metodologías Ágiles
Trabajo Fin De Grado
Guía Memoria TFG

Colecciones

Otros

kotlin:notificaciones

Notificaciones en Kotlin

Permisos AndroidManifest.xml

Debemos tener establecido el siguiente permiso en AndroidManifest.xml:

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

Constantes Recomendadas

Primero crearemos las constantes con el nombre del canal, el ID del canal y el ID de la notificación que crearemos al inicio de la clase de nuestra activity:

    private val nombreCanal = "depanama"
    private val idCanal = "retrovisu"
    private val idNotificacion = 5

Crear Canal de Notificaciones

Después, donde termina la función onCreate crearemos un canal de notificaciones, que es necesario para dispositivos con android 8 y superior:

    private fun crearCanalNotificacion(){
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){//Comprobamos la versión
            val importanciaCanal = NotificationManager.IMPORTANCE_HIGH //establecemos la importancia del canal
            val canal = NotificationChannel(idCanal, nombreCanal, importanciaCanal) //definimos el canal
 
            //Creamos gestor de notificaciones:
            val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
            manager.createNotificationChannel(canal)//Creamos el canal de notificaciones
        }
    }

Función para lanzar la notificación

Finalmente crearemos la función para lanzar la notificación:

    private fun crearNotificacion(){
        crearCanalNotificacion()//Creamos canal de comunicación
        val notificacion = NotificationCompat.Builder(this,idCanal).also {
            it.setContentTitle("Título Notificación")
            it.setContentText("Cuerpo notificación")
            it.setSmallIcon(R.drawable.foto)//icono de la notificación
            it.priority = NotificationCompat.PRIORITY_HIGH//establecemos prioridad
        }.build()
 
        val GestorNotificaciones = NotificationManagerCompat.from(this)
 
        //revisamos que estén puestos los permisos en AndroidManifest.xml
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
 
            Toast.makeText(applicationContext,"No hay permisos de notificaciones", Toast.LENGTH_SHORT)
            return
        }
        GestorNotificaciones.notify(idNotificacion, notificacion)
    }

A tener en cuenta

Si tras establecer los permisos y demás no te salen las notificaciones debes ir a configuración de android, ir a la sección de permisos de notifiaciones y asegurarte de que tu aplicación no esté deshabilitada:

Buscamos Notificaciones en la barra de búsqueda y vamos al gestor de permisos de notificaciones:

Si nuestra App no aparece, le daremos a donde pone más recientes y luego a Desactivadas:

Después de eso se nos mostrarán las activaciones sin permisos de notificación, buscaremos nuestra app y le activaremos los permisos.

kotlin/notificaciones.txt · Última modificación: 2023/11/23 10:14 por thejuanvisu