Sobes.tech
Junior

Kako napraviti obaveštenje u Androidu?

sobes.tech АИ

Одговор од АИ

Za kreiranje obaveštenja u Androidu potrebno je izvršiti sledeće korake:

  1. Kreirajte kanal za obaveštenja (za API nivo 26 i više).
  2. Izgradite obaveštenje pomoću NotificationCompat.Builder.
  3. Prikažite obaveštenje putem menadžera obaveštenja.
// Kreiranje kanala za obaveštenja (API 26+)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    String channelId = "my_channel_id";
    CharSequence channelName = "My Channel";
    String channelDescription = "Description for My Channel";
    int importance = NotificationManager.IMPORTANCE_DEFAULT;
    NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
    channel.setDescription(channelDescription);
    // Registracija kanala u sistemu
    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(channel);
}

// Kreiranje builder-a za obaveštenja
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel_id") // Navesti ID kanala
        .setSmallIcon(R.drawable.ic_notification) // Ikona obaveštenja
        .setContentTitle("Naslov obaveštenja") // Naslov
        .setContentText("Tekst obaveštenja") // Tekst
        .setPriority(NotificationCompat.PRIORITY_DEFAULT); // Prioritet

// Kreiranje PendingIntent-a za akciju na klik obaveštenja
// Na primer, otvaranje aktivnosti
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); // Flag za API S+
builder.setContentIntent(pendingIntent);

// Prikaz obaveštenja
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
int notificationId = 1; // Jedinstveni ID za obaveštenje
notificationManagerCompat.notify(notificationId, builder.build());

Glavni sastavni delovi obaveštenja:

  • Mala ikona: setSmallIcon(), prikazuje se u statusnoj liniji.
  • Naslov: setContentTitle(), glavni tekst obaveštenja.
  • Tekst: setContentText(), dodatni tekst.
  • Kanal obaveštenja (API 26+): Grupa obaveštenja sa zajedničkim podešavanjima.
  • PendingIntent: Akcija koja se izvršava na klik obaveštenja.

Dodatno, možete dodati veliki prikaz slike (setStyle(new NotificationCompat.BigPictureStyle())), dugmad za akcije (addAction()), podesiti zvuk, vibraciju i druge parametre.