Począwszy od Androida 8.0 (poziom interfejsu API 26), plakietki powiadomień – nazywane też kropki powiadomień – pojawiają się na ikonie programu uruchamiającego, gdy powiązana aplikacja ma aktywne powiadomienie. Użytkownicy mogą dotknij & i przytrzymaj ikonę aplikacji, aby wyświetlić powiadomienia, skróty do aplikacji, jak widać tutaj: rysunek 1.
Te kropki pojawiają się domyślnie w programach uruchamiających, które je obsługują, oraz aplikacji nie potrzebuje. Może się jednak zdarzyć, że nie chcesz, żeby wyświetlała się kropka powiadomienia, lub chcesz dokładnie sterować które powiadomienia się tam wyświetlają.
Rysunek 1. Plakietki powiadomień oraz dotyk i przytrzymuj menu.
Wyłącz plakietki
W niektórych przypadkach plakietki nie mają sensu w przypadku powiadomień, więc
można je wyłączyć dla każdego kanału, wywołując
setShowBadge(false)
na urządzeniu NotificationChannel
obiektu.
Możesz na przykład wyłączyć plakietki powiadomień w następujących sytuacjach: w sytuacjach:
- Bieżące powiadomienia: większość powiadomień o przetwarzaniu obrazu, np. o przetwarzaniu obrazu, elementy sterujące odtwarzaniem multimediów lub bieżące instrukcje nawigacji nie mają sensu. jako odznaki.
- Przypomnienia z kalendarza: unikaj oznaczania wydarzeniami, które odbywają się w danej chwili.
- Zdarzenia związane z zegarem lub alarmami: unikaj oznaczania powiadomień związanych z bieżącymi alarmami.
Ten przykładowy kod pokazuje, jak ukryć plakietki kanał powiadomień:
Kotlin
val id = "my_channel_01" val name = getString(R.string.channel_name) val descriptionText = getString(R.string.channel_description) val importance = NotificationManager.IMPORTANCE_LOW val mChannel = NotificationChannel(id, name, importance).apply { description = descriptionText setShowBadge(false) } val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(mChannel)
Java
String id = "my_channel_01"; CharSequence name = getString(R.string.channel_name); String description = getString(R.string.channel_description); int importance = NotificationManager.IMPORTANCE_LOW; NotificationChannel mChannel = new NotificationChannel(id, name, importance); mChannel.setDescription(description); mChannel.setShowBadge(false); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.createNotificationChannel(mChannel);
Ustaw niestandardową liczbę powiadomień
Domyślnie każde powiadomienie powoduje zwiększenie liczby wyświetlanej po dotknięciu przycisku & przytrzymaj jak widać na rysunku 1, ale możesz zastąpić tę liczbę w przypadku swojej aplikacji. Może to być przydatne, jeśli na przykład wysyłasz tylko jedno powiadomienie, aby reprezentują wiele nowych wiadomości, ale chcesz, aby licznik odzwierciedlał łączną liczbę nowych wiadomości.
Aby ustawić numer niestandardowy, zadzwoń do
setNumber()
w powiadomieniu, jak widać tutaj:
Kotlin
var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setNumber(messageCount) .build()
Java
Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setNumber(messageCount) .build();
Modyfikowanie kliknięcia powiadomienia & ikona menu wstrzymania
Funkcje dotyku w którym jest wyświetlana duża lub mała ikona powiązana z
powiadomienia, jeśli jest dostępne. Domyślnie system wyświetla dużą ikonę, ale
Możesz zadzwonić
Notification.Builder.setBadgeIconType()
i zdaj BADGE_ICON_SMALL
stały, aby wyświetlić małą ikonę.
Kotlin
var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL) .build()
Java
Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID) .setContentTitle("New Messages") .setContentText("You've received 3 new messages.") .setSmallIcon(R.drawable.ic_notify_status) .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL) .build();
Ukryj zduplikowany skrót
Jeśli Twoja aplikacja utworzy powiadomienie będące duplikatem skrótu do aplikacji, możesz
tymczasowo ukryj skrót przez połączenie telefoniczne, gdy powiadomienie jest aktywne
setShortcutId()
.
Więcej przykładowego kodu, który korzysta z powiadomień, znajdziesz w przykładzie dotyczącym osób.