Sobes.tech
Junior

Como criar uma notificação no Android?

sobes.tech IA

Resposta da IA

Para criar uma notificação no Android, deve seguir os seguintes passos:

  1. Criar um canal de notificação (para API nível 26 e superior).
  2. Construir a notificação usando NotificationCompat.Builder.
  3. Mostrar a notificação através do gestor de notificações.
// Criação do canal de notificação (API 26+)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    String channelId = "my_channel_id";
    CharSequence channelName = "Meu Canal";
    String channelDescription = "Descrição do Meu Canal";
    int importance = NotificationManager.IMPORTANCE_DEFAULT;
    NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
    channel.setDescription(channelDescription);
    // Registo do canal no sistema
    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(channel);
}

// Criação do construtor de notificações
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel_id") // Especificar ID do canal
        .setSmallIcon(R.drawable.ic_notification) // Ícone da notificação
        .setContentTitle("Título da notificação") // Título
        .setContentText("Texto da notificação") // Texto
        .setPriority(NotificationCompat.PRIORITY_DEFAULT); // Prioridade

// Criar PendingIntent para a ação ao clicar na notificação
// Por exemplo, abrir uma atividade
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); // Bandeira para API S+
builder.setContentIntent(pendingIntent);

// Mostrar a notificação
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
int notificationId = 1; // ID único para a notificação
notificationManagerCompat.notify(notificationId, builder.build());

Componentes principais da notificação:

  • Ícone pequeno: setSmallIcon(), exibido na barra de estado.
  • Título: setContentTitle(), texto principal da notificação.
  • Texto: setContentText(), texto adicional.
  • Canal de notificação (API 26+): Grupo de notificações com configurações comuns.
  • PendingIntent: Ação executada ao clicar na notificação.

Adicionalmente, pode-se adicionar uma imagem grande (setStyle(new NotificationCompat.BigPictureStyle())), botões de ação (addAction()), configurar som, vibração e outros parâmetros.