Notification Permission: o que é, tipos de notificações e princípio de funcionamento

Autor: IT Sectr Publicado: 2026-05-22 Tempo de leitura: 8 min

Notification Permission é a permissão necessária para um aplicativo enviar notificações push e notificações locais ao usuário. A partir do Android 13 e iOS 12, os aplicativos são obrigados a solicitar essa permissão em tempo de execução através de um diálogo do sistema. De acordo com Android Developers, 2024, sem o consentimento explícito do usuário, o aplicativo não pode exibir notificações em dispositivos com Android 13 e superior.

Pontos principais

  • Notification Permission é uma permissão de tempo de execução para enviar notificações, obrigatória no Android 13+ e iOS 12+.
  • Android 13 introduziu a permissão POST_NOTIFICATIONS, que deve ser solicitada em tempo de execução através da Activity Result API.
  • iOS usa UNUserNotificationCenter.requestAuthorization para solicitar acesso a notificações locais e push.
  • Negar a permissão faz com que o aplicativo não possa exibir notificações locais nem push.
  • Não é possível solicitar novamente após a primeira negação — é necessário redirecionar o usuário para as configurações do sistema.

O que é Notification Permission?

Notification Permission é uma permissão do sistema que regula a capacidade de um aplicativo enviar notificações ao usuário. Antes do Android 13, todos os aplicativos podiam exibir notificações sem solicitação — bastava declarar a permissão no manifesto. No entanto, com o aumento de spam e notificações intrusivas, o Google introduziu uma solicitação obrigatória em tempo de execução, semelhante ao iOS.

No iOS, a permissão de notificação é obrigatória desde o iOS 8, e a partir do iOS 12 surgiram as notificações provisórias — notificações silenciosas que são entregues sem som e exibidas na Central de Notificações sem uma solicitação explícita. As notificações provisórias permitem que o desenvolvedor mostre ao usuário o valor das notificações antes de solicitar a permissão completa.

De acordo com Localytics (2024), 61% dos usuários iOS e 55% dos usuários Android concordam em receber notificações push após uma solicitação. A conversão de aprovação depende diretamente do contexto da solicitação: aplicativos que pedem permissão após a primeira interação valiosa obtêm 40% mais aprovações do que aqueles que solicitam na primeira inicialização.

Evolução das permissões de notificação

A evolução das permissões de notificação mostra como as plataformas restringiram gradualmente o acesso dos aplicativos a este canal de comunicação. Compreender essa evolução ajuda o desenvolvedor a lidar corretamente com diferentes versões do sistema operacional.

Android: do acesso livre ao controle rigoroso

Antes do Android 13 (2022), qualquer aplicativo podia exibir notificações sem o consentimento do usuário. O Android 8.0 (2017) introduziu os canais de notificação, o Android 12 (2021) adicionou o bloqueio automático de notificações intrusivas e, finalmente, o Android 13 tornou obrigatória a solicitação de POST_NOTIFICATIONS em tempo de execução. Para aplicativos com targetSdkVersion inferior a 33, o sistema concede a permissão automaticamente, mas o Google Play exige a atualização do targetSdkVersion para 33+ desde agosto de 2023.

iOS: fortalecimento progressivo do controle

O iOS 8 (2014) introduziu a solicitação obrigatória de permissão através do UIUserNotificationSettings. O iOS 10 (2016) apresentou o UNUserNotificationCenter com suporte para notificações ricas. O iOS 12 (2018) adicionou notificações provisórias e notificações agrupadas. O iOS 15 (2021) introduziu o Modo Foco, que pode bloquear notificações independentemente da permissão do aplicativo. O App Tracking Transparency (iOS 14.5) não está relacionado a notificações, mas também influenciou a cultura geral de solicitações de permissão.

Estado atual

Atualmente, ambas as plataformas exigem uma solicitação de Notification Permission em tempo de execução. O desenvolvedor não pode mais confiar na ativação automática das notificações. O usuário tem controle total sobre quais aplicativos podem notificá-lo. Os canais de notificação no Android e as categorias de notificação no iOS permitem que o usuário ajuste finamente os tipos de alertas que recebe.

Notification Permission no Android

Notification Permission no Android é habilitada através da permissão POST_NOTIFICATIONS declarada no manifesto, seguida por uma solicitação em tempo de execução para Android 13+.

Declaração no manifesto

Para Android 13+, é necessário declarar a permissão POST_NOTIFICATIONS no AndroidManifest.xml. Para compatibilidade retroativa com Android 12 e inferior, a permissão é concedida automaticamente pelo sistema — nenhuma ação adicional é necessária.

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

Solicitação em tempo de execução em Kotlin

A solicitação da permissão POST_NOTIFICATIONS é realizada através da Activity Result API. É importante verificar a versão do SDK: no Android 12 e inferior, nenhuma solicitação é necessária — a permissão é considerada concedida automaticamente.

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 e inferior — permissão concedida automaticamente
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Criação de canais de notificação

No Android 8.0+, o aplicativo deve criar um canal de notificação através de NotificationChannel antes de enviar a primeira notificação. O canal tem um nível de importância de IMPORTANCE_NONE a IMPORTANCE_HIGH, que determina se a notificação será exibida com som e como banner. Se o usuário desativou as notificações para o aplicativo, novos canais não terão efeito até serem reativados nas configurações. Recomenda-se criar canais separados para diferentes tipos de alertas: mensagens, anúncios, eventos do sistema.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Mensagens",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Notificações de novas mensagens"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

Notification Permission no iOS

Notification Permission no iOS é solicitada através do UNUserNotificationCenter. A Apple recomenda uma abordagem de duas etapas: primeiro solicitar notificações provisórias e, depois de demonstrar valor, solicitar a permissão completa.

Solicitação em Swift com opção provisória

Notificações provisórias são notificações silenciosas que aparecem na Central de Notificações sem som ou banner. Elas não exigem consentimento explícito do usuário e permitem que o aplicativo demonstre o valor das notificações antes de uma solicitação completa. Após receber várias notificações provisórias, o usuário pode ativar as notificações completas através do menu dentro da própria notificação.

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
        // Provisório — o usuário não vê o diálogo
        // Notificações chegam sem som na Central de Notificações
        registerForRemoteNotifications()
    }
}

Verificação de status e configurações do sistema

O status atual do Notification Permission no iOS pode ser obtido através de UNUserNotificationCenter.current().getNotificationSettings. O status .authorized, .denied, .provisional ou .notDetermined permite que o aplicativo escolha o comportamento correto. Após a primeira negação, o diálogo do sistema não é exibido novamente — é necessário redirecionar o usuário para Ajustes através do UIApplication.openSettingsURLString. A Apple também recomenda lidar com o status .ephemeral (iOS 17+), que fornece notificações temporárias para cenários específicos.

Melhores práticas para solicitar notificações

As melhores práticas para solicitar Notification Permission visam aumentar a conversão de aprovação e reduzir a perda de usuários. Uma solicitação incorreta pode não apenas privar o aplicativo da capacidade de enviar notificações, mas também levar à desinstalação do aplicativo.

Não solicite na primeira inicialização

O antipadrão mais comum é solicitar Notification Permission na primeira inicialização do aplicativo. O usuário ainda não entende o valor do aplicativo e tem alta probabilidade de negar. O momento ideal é depois que o usuário realizou a primeira ação valiosa: fez um pedido, enviou uma mensagem, inscreveu-se em atualizações. Um solicitação pós-valor aumenta a conversão de aprovação para 65-75%.

Use uma tela de pré-permissão

Antes do diálogo do sistema, mostre sua própria tela com exemplos de notificações que o usuário receberá. Exiba uma maquete de uma notificação futura com texto e ícone. Se o usuário perceber que as notificações serão úteis e não intrusivas, ele terá maior probabilidade de consentir. Uma prévia de notificação na tela de pré-permissão é uma técnica eficaz que aumenta a conversão em 35-50%.

Use notificações provisórias no iOS

Solicitar proativamente Notificações Provisórias no iOS permite entregar notificações sem o consentimento explícito do usuário. Se o usuário perceber valor nessas notificações, ele pode ativar as notificações completas através do menu de contexto da notificação. A Apple recomenda esta abordagem para aplicativos de notícias, aplicativos de clima e outros serviços onde as notificações são informativas e não transacionais. De acordo com a Apple WWDC 2024, esta abordagem aumenta a conversão de aprovação completa em 20-30%.

Perguntas frequentes

O que fazer se o usuário negou o Notification Permission?

Após a negação, o diálogo do sistema não é exibido novamente. A única maneira de ativar as notificações é redirecionar o usuário para as configurações do sistema através de Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) no Android ou UIApplication.openSettingsURLString no iOS. Mostre uma tela com instruções e um botão para prosseguir.

Como funciona o Notification Permission no Android 12 e inferior?

No Android 12 e inferior, o Notification Permission não é necessário — todos os aplicativos podem enviar notificações sem solicitação. No entanto, o usuário pode desativar as notificações a qualquer momento através das configurações do sistema. A partir do Android 13, a solicitação em tempo de execução é obrigatória para targetSdkVersion 33+.

O que são canais de notificação no Android?

NotificationChannel é uma categoria de notificação introduzida no Android 8.0. Cada canal tem um nome, descrição, nível de importância e grupo. O usuário pode desativar canais individuais sem desativar todas as notificações do aplicativo. Por exemplo, o canal “Novas mensagens” e o canal “Mailings promocionais” podem ser configurados de forma diferente.

É possível enviar notificações sem Notification Permission?

No Android 13+, sem POST_NOTIFICATIONS, qualquer chamada para NotificationManager.notify será ignorada pelo sistema. No iOS, sem a permissão do UNUserNotificationCenter, as notificações não são entregues. Exceção: Provisional no iOS (sem som, apenas na Central de Notificações) e Android 12- (permissão não necessária).

Como verificar se as notificações estão ativadas para o aplicativo?

No Android, use NotificationManagerCompat.areNotificationsEnabled(). No iOS, chame UNUserNotificationCenter.current().getNotificationSettings e verifique a propriedade authorizationStatus. Para Android, verifique adicionalmente a importância do canal: NotificationChannel.getImportance() não deve ser IMPORTANCE_NONE.

Resumo

  • Notification Permission é uma permissão obrigatória em tempo de execução para enviar notificações no Android 13+ e iOS 12+.
  • Android 13 introduziu o POST_NOTIFICATIONS com solicitação em tempo de execução; para Android 12 e inferior, a permissão é automática.
  • iOS usa UNUserNotificationCenter com suporte para notificações provisórias para entrega silenciosa sem consentimento.
  • Solicitação pós-valor — solicitar após a primeira ação valiosa do usuário aumenta a conversão de aprovação para 75%.
  • Tela de pré-permissão com um exemplo de notificação aumenta a conversão em 35-50% de acordo com pesquisas do setor.
  • Notificações provisórias no iOS permitem demonstrar o valor das notificações antes de solicitar a permissão completa.
  • Canais de notificação no Android dão ao usuário controle granular sobre os tipos de notificações que recebe.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também