Notification Permission: qué es, tipos de notificaciones y principio de funcionamiento

Autor: IT Sectr Publicado: 2026-05-22 Tiempo de lectura: 8 min

Notification Permission es el permiso necesario para que una aplicación envíe notificaciones push y notificaciones locales al usuario. A partir de Android 13 y iOS 12, las aplicaciones deben solicitar este permiso en tiempo de ejecución a través de un diálogo del sistema. Según Android Developers, 2024, sin el consentimiento explícito del usuario, la aplicación no puede mostrar notificaciones en dispositivos con Android 13 y superior.

Puntos clave

  • Notification Permission es un permiso en tiempo de ejecución para enviar notificaciones, obligatorio en Android 13+ y iOS 12+.
  • Android 13 introdujo el permiso POST_NOTIFICATIONS, que debe solicitarse en tiempo de ejecución a través de Activity Result API.
  • iOS utiliza UNUserNotificationCenter.requestAuthorization para solicitar acceso a notificaciones locales y push.
  • Denegar el permiso hace que la aplicación no pueda mostrar ni notificaciones locales ni push.
  • No es posible volver a solicitar después de la primera denegación: debe redirigir al usuario a la configuración del sistema.

¿Qué es Notification Permission?

Notification Permission es un permiso del sistema que regula la capacidad de una aplicación para enviar notificaciones al usuario. Antes de Android 13, todas las aplicaciones podían mostrar notificaciones sin solicitarlo — bastaba con declarar el permiso en el manifiesto. Sin embargo, con el aumento del spam y las notificaciones molestas, Google introdujo una solicitud obligatoria en tiempo de ejecución, similar a iOS.

En iOS, el permiso de notificación ha sido obligatorio desde iOS 8, y a partir de iOS 12 aparecieron las notificaciones provisionales — notificaciones silenciosas que se entregan sin sonido y se muestran en el Centro de Notificaciones sin una solicitud explícita. Las notificaciones provisionales permiten al desarrollador mostrar al usuario el valor de las notificaciones antes de solicitar el permiso completo.

Según Localytics (2024), el 61% de los usuarios de iOS y el 55% de los usuarios de Android aceptan recibir notificaciones push después de una solicitud. La conversión de aprobación depende directamente del contexto de la solicitud: las aplicaciones que piden permiso después de la primera interacción valiosa obtienen un 40% más de aprobaciones que las que lo solicitan en el primer inicio.

Evolución de los permisos de notificación

La evolución de los permisos de notificación muestra cómo las plataformas han restringido gradualmente el acceso de las aplicaciones a este canal de comunicación. Comprender esta evolución ayuda al desarrollador a manejar correctamente las diferentes versiones del sistema operativo.

Android: del acceso libre al control estricto

Antes de Android 13 (2022), cualquier aplicación podía mostrar notificaciones sin el consentimiento del usuario. Android 8.0 (2017) introdujo los canales de notificación, Android 12 (2021) agregó el bloqueo automático de notificaciones molestas, y finalmente Android 13 hizo obligatorio solicitar POST_NOTIFICATIONS en tiempo de ejecución. Para las aplicaciones con targetSdkVersion inferior a 33, el sistema otorga el permiso automáticamente, pero Google Play exige actualizar targetSdkVersion a 33+ desde agosto de 2023.

iOS: fortalecimiento progresivo del control

iOS 8 (2014) introdujo la solicitud obligatoria de permiso a través de UIUserNotificationSettings. iOS 10 (2016) presentó UNUserNotificationCenter con soporte para notificaciones enriquecidas. iOS 12 (2018) agregó notificaciones provisionales y notificaciones agrupadas. iOS 15 (2021) introdujo el Modo de Enfoque, que puede bloquear notificaciones independientemente del permiso de la aplicación. App Tracking Transparency (iOS 14.5) no está relacionado con las notificaciones, pero también ha influido en la cultura general de solicitudes de permisos.

Estado actual

Actualmente, ambas plataformas requieren una solicitud de Notification Permission en tiempo de ejecución. El desarrollador ya no puede confiar en la activación automática de las notificaciones. El usuario tiene control total sobre qué aplicaciones pueden notificarle. Los canales de notificación en Android y las categorías de notificación en iOS permiten al usuario ajustar finamente los tipos de alertas que recibe.

Notification Permission en Android

Notification Permission en Android se habilita mediante el permiso POST_NOTIFICATIONS declarado en el manifiesto, seguido de una solicitud en tiempo de ejecución para Android 13+.

Declaración en el manifiesto

Para Android 13+, es necesario declarar el permiso POST_NOTIFICATIONS en AndroidManifest.xml. Para compatibilidad backward con Android 12 y versiones anteriores, el permiso se otorga automáticamente por el sistema — no se requieren acciones adicionales.

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

Solicitud en tiempo de ejecución en Kotlin

La solicitud del permiso POST_NOTIFICATIONS se realiza a través de Activity Result API. Es importante verificar la versión del SDK: en Android 12 y versiones anteriores no se necesita solicitud — el permiso se considera otorgado automáticamente.

kotlin
private val notificationPermissionLauncher =
    registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
    if (granted) {
        createNotificationChannel()
        showPushNotification()
    } else {
        logPermissionDenied()
    }
}

fun requestNotificationAccess() {
    if (Build.version.SDK_INT <= Build.VERSION_CODES.S_V2) {
        // Android 12 y versiones anteriores — permiso otorgado automáticamente
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Creación de canales de notificación

En Android 8.0+, la aplicación debe crear un canal de notificación a través de NotificationChannel antes de enviar la primera notificación. El canal tiene un nivel de importancia desde IMPORTANCE_NONE hasta IMPORTANCE_HIGH, que determina si la notificación se mostrará con sonido y como banner. Si el usuario ha desactivado las notificaciones para la aplicación, los nuevos canales no tendrán efecto hasta que se vuelvan a activar en la configuración. Se recomienda crear canales separados para diferentes tipos de alertas: mensajes, publicidad, eventos del sistema.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Mensajes",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Notificaciones de nuevos mensajes"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

Notification Permission en iOS

Notification Permission en iOS se solicita a través de UNUserNotificationCenter. Apple recomienda un enfoque de dos pasos: primero solicitar notificaciones provisionales, luego, después de demostrar el valor, solicitar el permiso completo.

Solicitud en Swift con opción provisional

Las notificaciones provisionales son notificaciones silenciosas que aparecen en el Centro de Notificaciones sin sonido ni banner. No requieren el consentimiento explícito del usuario y permiten que la aplicación demuestre el valor de las notificaciones antes de una solicitud completa. Después de recibir varias notificaciones provisionales, el usuario puede activar las notificaciones completas a través del menú dentro de la propia notificación.

swift
import UserNotifications

func requestNotificationPermission() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
        if let error = error {
            print("Notification error: \(error.localizedDescription)")
            return
        }
        if granted {
            registerForRemoteNotifications()
        } else {
            handleDeniedPermission()
        }
    }
}

func requestProvisionalOnly() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.provisional, .alert, .badge, .sound]) { granted, error in
        // Provisional — el usuario no ve el diálogo
        // Las notificaciones llegan sin sonido al Centro de Notificaciones
        registerForRemoteNotifications()
    }
}

Verificación del estado y configuración del sistema

El estado actual de Notification Permission en iOS se puede obtener a través de UNUserNotificationCenter.current().getNotificationSettings. El estado .authorized, .denied, .provisional o .notDetermined permite que la aplicación elija el comportamiento correcto. Después de la primera denegación, el diálogo del sistema no se vuelve a mostrar — debe redirigir al usuario a Configuración a través de UIApplication.openSettingsURLString. Apple también recomienda manejar el estado .ephemeral (iOS 17+), que proporciona notificaciones temporales para escenarios específicos.

Mejores prácticas para solicitar notificaciones

Las mejores prácticas para solicitar Notification Permission tienen como objetivo aumentar la conversión de aprobación y reducir la pérdida de usuarios. Una solicitud incorrecta no solo puede privar a la aplicación de la capacidad de enviar notificaciones, sino también llevar a la desinstalación de la aplicación.

No solicite en el primer inicio

El antipatrón más común es solicitar Notification Permission en el primer inicio de la aplicación. El usuario aún no comprende el valor de la aplicación y es muy probable que deniegue. El momento óptimo es después de que el usuario haya realizado la primera acción valiosa: realizado un pedido, enviado un mensaje, se haya suscrito a actualizaciones. Una solicitud post-valor aumenta la conversión de aprobación al 65-75%.

Utilice una pantalla de pre-permiso

Antes del diálogo del sistema, muestre su propia pantalla con ejemplos de las notificaciones que recibirá el usuario. Muestre una maqueta de una notificación futura con texto e icono. Si el usuario ve que las notificaciones serán útiles y no intrusivas, es más probable que acepte. Una vista previa de notificación en la pantalla de pre-permiso es una técnica efectiva que aumenta la conversión entre un 35 y un 50%.

Utilice notificaciones provisionales en iOS

Solicitar de forma proactiva Notificaciones Provisionales en iOS permite entregar notificaciones sin el consentimiento explícito del usuario. Si el usuario ve valor en estas notificaciones, puede activar las notificaciones completas a través del menú contextual de la notificación. Apple recomienda este enfoque para aplicaciones de noticias, aplicaciones del clima y otros servicios donde las notificaciones son informativas y no transaccionales. Según Apple WWDC 2024, este enfoque aumenta la conversión de aprobación completa entre un 20 y un 30%.

Preguntas frecuentes

¿Qué hacer si el usuario denegó Notification Permission?

Después de la denegación, el diálogo del sistema no se vuelve a mostrar. La única forma de activar las notificaciones es redirigir al usuario a la configuración del sistema a través de Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) en Android o UIApplication.openSettingsURLString en iOS. Muestre una pantalla con instrucciones y un botón para continuar.

¿Cómo funciona Notification Permission en Android 12 y versiones anteriores?

En Android 12 y versiones anteriores, no se requiere Notification Permission — todas las aplicaciones pueden enviar notificaciones sin solicitud. Sin embargo, el usuario puede desactivar las notificaciones en cualquier momento a través de la configuración del sistema. A partir de Android 13, la solicitud en tiempo de ejecución es obligatoria para targetSdkVersion 33+.

¿Qué son los canales de notificación en Android?

NotificationChannel es una categoría de notificación introducida en Android 8.0. Cada canal tiene un nombre, descripción, nivel de importancia y grupo. El usuario puede desactivar canales individuales sin desactivar todas las notificaciones de la aplicación. Por ejemplo, el canal “Nuevos mensajes” y el canal “Boletines publicitarios” se pueden configurar de manera diferente.

¿Se pueden enviar notificaciones sin Notification Permission?

En Android 13+, sin POST_NOTIFICATIONS, cualquier llamada a NotificationManager.notify será ignorada por el sistema. En iOS, sin el permiso de UNUserNotificationCenter, las notificaciones no se entregan. Excepción: Provisional en iOS (sin sonido, solo en el Centro de Notificaciones) y Android 12- (no se requiere permiso).

¿Cómo verificar si las notificaciones están activadas para la aplicación?

En Android, use NotificationManagerCompat.areNotificationsEnabled(). En iOS, llame a UNUserNotificationCenter.current().getNotificationSettings y verifique la propiedad authorizationStatus. Para Android, adicionalmente verifique la importancia del canal: NotificationChannel.getImportance() no debe ser IMPORTANCE_NONE.

Resumen

  • Notification Permission es un permiso obligatorio en tiempo de ejecución para enviar notificaciones en Android 13+ y iOS 12+.
  • Android 13 introdujo POST_NOTIFICATIONS con solicitud en tiempo de ejecución; para Android 12 y versiones anteriores, el permiso es automático.
  • iOS utiliza UNUserNotificationCenter con soporte para notificaciones provisionales para entrega silenciosa sin consentimiento.
  • Solicitud post-valor — solicitar después de la primera acción valiosa del usuario aumenta la conversión de aprobación al 75%.
  • Pantalla de pre-permiso con un ejemplo de notificación aumenta la conversión entre un 35 y un 50% según investigaciones de la industria.
  • Notificaciones provisionales en iOS permiten demostrar el valor de las notificaciones antes de solicitar el permiso completo.
  • Canales de notificación en Android brindan al usuario control granular sobre los tipos de notificaciones que recibe.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también