Sobes.tech
Junior

Kaip sukurti įspėjimą Android?

sobes.tech AI

Atsakymas iš AI

Norint sukurti įspėjimą Android, reikia atlikti šiuos žingsnius:

  1. Sukurkite įspėjimo kanalą (API lygis 26 ir aukštesnis).
  2. Sukurkite įspėjimą naudodami NotificationCompat.Builder.
  3. Rodykite įspėjimą per įspėjimų tvarkyklę.
// Sukurti įspėjimo kanalą (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);
    // Registruoti kanalą sistemoje
    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    notificationManager.createNotificationChannel(channel);
}

// Sukurti įspėjimo kūrėją
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel_id") // Nurodykite kanalo ID
        .setSmallIcon(R.drawable.ic_notification) // Paveikslėlis
        .setContentTitle("Įspėjimo pavadinimas") // Pavadinimas
        .setContentText("Įspėjimo tekstas") // Tekstas
        .setPriority(NotificationCompat.PRIORITY_DEFAULT); // Prioritetas

// Sukurti PendingIntent veiksmui, kai spustelima įspėjimas
// Pavyzdžiui, atidaryti aktyvumą
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); // API S+ žymeklis
builder.setContentIntent(pendingIntent);

// Rodyti įspėjimą
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
int notificationId = 1; // Unikalus ID
notificationManagerCompat.notify(notificationId, builder.build());

Pagrindiniai įspėjimo komponentai:

  • Maža piktograma: setSmallIcon(), rodoma būsenos juostoje.
  • Antraštė: setContentTitle(), pagrindinis tekstas.
  • Tekstas: setContentText(), papildomas tekstas.
  • Įspėjimo kanalas (API 26+): Grupė įspėjimų su bendromis nustatymais.
  • PendingIntent: Veiksmas, vykdomas paspaudus įspėjimą.

Taip pat galima pridėti didelį vaizdą (setStyle(new NotificationCompat.BigPictureStyle())), veiksmų mygtukus (addAction()), garsą, vibraciją ir kitus parametrus.