Sobes.tech
Junior

Jak vytvořit upozornění v Androidu?

sobes.tech AI

Odpověď od AI

Pro vytvoření oznámení v Androidu je třeba provést následující kroky:

  1. Vytvořit kanál oznámení (pro API úrovně 26 a vyšší).
  2. Postavit oznámení pomocí NotificationCompat.Builder.
  3. Zobrazit oznámení přes správce oznámení.
// Vytvoření kanálu oznámení (API 26+)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    String channelId = "my_channel_id";
    CharSequence channelName = "Můj kanál";
    String channelDescription = "Popis mého kanálu";
    int importance = NotificationManager.IMPORTANCE_DEFAULT;
    NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
    channel.setDescription(channelDescription);
    // Registrace kanálu v systému
    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(channel);
}

// Vytvoření stavitele oznámení
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel_id") // Určete ID kanálu
        .setSmallIcon(R.drawable.ic_notification) // Ikona oznámení
        .setContentTitle("Nadpis oznámení") // Nadpis
        .setContentText("Text oznámení") // Text
        .setPriority(NotificationCompat.PRIORITY_DEFAULT); // Priorita

// Vytvoření PendingIntent pro akci při kliknutí na oznámení
// Například otevření aktivity
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); // Příznak pro API S+
builder.setContentIntent(pendingIntent);

// Zobrazit oznámení
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
int notificationId = 1; // Unikátní ID pro oznámení
notificationManagerCompat.notify(notificationId, builder.build());

Hlavní komponenty oznámení:

  • Malá ikona: setSmallIcon(), zobrazí se na stavovém řádku.
  • Nadpis: setContentTitle(), hlavní text oznámení.
  • Text: setContentText(), doplňkový text.
  • Kanál oznámení (API 26+): Skupina oznámení s společnými nastaveními.
  • PendingIntent: Akce, která se provádí při kliknutí na oznámení.

Dále lze přidat velký obrázek (setStyle(new NotificationCompat.BigPictureStyle())), tlačítka akcí (addAction()), nastavit zvuk, vibraci a další parametry.