====== Notificaciones en Kotlin ======
===== Permisos AndroidManifest.xml =====
Debemos tener establecido el siguiente permiso en AndroidManifest.xml:
{{:kotlin:imagen_2023-11-03_131129153.png|}}
===== 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:
{{:kotlin:imagen_2023-11-03_131403843.png|}}
Buscamos Notificaciones en la barra de búsqueda y vamos al gestor de permisos de notificaciones:
{{:kotlin:imagen_2023-11-03_131547617.png|}}
Si nuestra App no aparece, le daremos a donde pone más recientes y luego a Desactivadas:
{{:kotlin:imagen_2023-11-03_131753760.png|}}
Después de eso se nos mostrarán las activaciones sin permisos de notificación, buscaremos nuestra app y le activaremos los permisos.