Sobes.tech
Junior

Ako vytvoriť upozornenie v Androidi?

sobes.tech AI

Odpoveď od AI

Na vytvorenie oznámenia v Android je potrebné vykonať nasledovné kroky:

  1. Vytvorte kanál oznámení (pre API úroveň 26 a vyššie).
  2. Postavte oznámenie pomocou NotificationCompat.Builder.
  3. Zobrazte oznámenie prostredníctvom správcu oznámení.
// Vytvorenie kanála oznámení (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);
    // Registrácia kanála v systéme
    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(channel);
}

// Vytvorenie buildera pre oznámenia
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel_id") // Uveďte ID kanála
        .setSmallIcon(R.drawable.ic_notification) // Ikona oznámenia
        .setContentTitle("Nadpis oznámenia") // Nadpis
        .setContentText("Text oznámenia") // Text
        .setPriority(NotificationCompat.PRIORITY_DEFAULT); // Priorita

// Vytvorenie PendingIntent pre akciu pri kliknutí na oznámenie
// Napríklad, otvorenie aktivity
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); // Flag pre API S+
builder.setContentIntent(pendingIntent);

// Zobrazenie oznámenia
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
int notificationId = 1; // Jedinečný ID pre oznámenie
notificationManagerCompat.notify(notificationId, builder.build());

Hlavné komponenty oznámenia:

  • Malá ikona: setSmallIcon(), zobrazuje sa v stavovej lište.
  • Nadpis: setContentTitle(), hlavný text oznámenia.
  • Text: setContentText(), doplnkový text.
  • Kanal oznámení (API 26+): Skupina oznámení s spoločnými nastaveniami.
  • PendingIntent: Akcia vykonávaná pri kliknutí na oznámenie.

Okrem toho môžete pridať veľký obrázok (setStyle(new NotificationCompat.BigPictureStyle())), tlačidlá akcií (addAction()), nastaviť zvuk, vibráciu a ďalšie parametre.