Sobes.tech
Junior

Jak utworzyć powiadomienie w Androidzie?

sobes.tech AI

Odpowiedź od AI

Aby utworzyć powiadomienie na Androidzie, należy wykonać następujące kroki:

  1. Utwórz kanał powiadomień (dla API poziomu 26 i wyższych).
  2. Zbuduj powiadomienie za pomocą NotificationCompat.Builder.
  3. Wyświetl powiadomienie za pomocą menedżera powiadomień.
// Tworzenie kanału powiadomień (API 26+)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    String channelId = "my_channel_id";
    CharSequence channelName = "Mój kanał";
    String channelDescription = "Opis mojego kanału";
    int importance = NotificationManager.IMPORTANCE_DEFAULT;
    NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
    channel.setDescription(channelDescription);
    // Rejestracja kanału w systemie
    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(channel);
}

// Tworzenie buildera powiadomienia
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel_id") // Podaj ID kanału
        .setSmallIcon(R.drawable.ic_notification) // Ikona powiadomienia
        .setContentTitle("Tytuł powiadomienia") // Tytuł
        .setContentText("Treść powiadomienia") // Tekst
        .setPriority(NotificationCompat.PRIORITY_DEFAULT); // Priorytet

// Tworzenie PendingIntent dla akcji po kliknięciu powiadomienia
// Na przykład, otwarcie aktywności
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); // Flaga dla API S+
builder.setContentIntent(pendingIntent);

// Wyświetlenie powiadomienia
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
int notificationId = 1; // Unikalny ID powiadomienia
notificationManagerCompat.notify(notificationId, builder.build());

Główne składniki powiadomienia:

  • Mała ikona: setSmallIcon(), wyświetlana na pasku stanu.
  • Tytuł: setContentTitle(), główny tekst powiadomienia.
  • Tekst: setContentText(), dodatkowy tekst.
  • Kanał powiadomień (API 26+): Grupa powiadomień z wspólnymi ustawieniami.
  • PendingIntent: Akcja wykonywana po kliknięciu powiadomienia.

Dodatkowo można dodać duży obraz (setStyle(new NotificationCompat.BigPictureStyle())), przyciski akcji (addAction()), ustawić dźwięk, wibrację i inne parametry.