Eine einfache Benachrichtigung enthält in der Regel einen Titel, eine Textzeile und Aktionen, die Nutzende als Antwort ausführen können. Um mehr Informationen bereitzustellen, können Sie große, indem Sie eine von mehreren Benachrichtigungsvorlagen die in diesem Dokument beschrieben werden.
Erstellen Sie zunächst eine Benachrichtigung mit allen grundlegenden Inhalten, wie unter
Benachrichtigung erstellen Gehen Sie dann so vor:
Anruf
setStyle()
mit einem Stilobjekt und liefern Informationen für jede Vorlage, wie
die in den folgenden Beispielen gezeigt werden.
Fügen Sie ein großes Bild hinzu
Um Ihrer Benachrichtigung ein Bild hinzuzufügen, übergeben Sie eine Instanz von
NotificationCompat.BigPictureStyle
an setStyle()
.
Kotlin
val notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_post) .setContentTitle(imageTitle) .setContentText(imageDescription) .setStyle(NotificationCompat.BigPictureStyle() .bigPicture(myBitmap)) .build()
Java
Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_post) .setContentTitle(imageTitle) .setContentText(imageDescription) .setStyle(new NotificationCompat.BigPictureStyle() .bigPicture(myBitmap)) .build();
Um das Bild nur als Miniaturansicht anzuzeigen, während die Benachrichtigung aktiviert ist
wie in der folgenden Abbildung dargestellt, rufen Sie auf,
setLargeIcon()
und das Bild übergeben. Rufen Sie dann
BigPictureStyle.bigLargeIcon()
und übergeben Sie null
, sodass das große Symbol verschwindet, wenn die Benachrichtigung
maximiert:
Kotlin
val notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_post) .setContentTitle(imageTitle) .setContentText(imageDescription) .setLargeIcon(myBitmap) .setStyle(NotificationCompat.BigPictureStyle() .bigPicture(myBitmap) .bigLargeIcon(null)) .build()
Java
Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_post) .setContentTitle(imageTitle) .setContentText(imageDescription) .setLargeIcon(myBitmap) .setStyle(new NotificationCompat.BigPictureStyle() .bigPicture(myBitmap) .bigLargeIcon(null)) .build();
Einen großen Textblock hinzufügen
Übernehmen
NotificationCompat.BigTextStyle
um Text im maximierten Inhaltsbereich der Benachrichtigung anzuzeigen:
Kotlin
val notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_mail) .setContentTitle(emailObject.getSenderName()) .setContentText(emailObject.getSubject()) .setLargeIcon(emailObject.getSenderAvatar()) .setStyle(NotificationCompat.BigTextStyle() .bigText(emailObject.getSubjectAndSnippet())) .build()
Java
Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_mail) .setContentTitle(emailObject.getSenderName()) .setContentText(emailObject.getSubject()) .setLargeIcon(emailObject.getSenderAvatar()) .setStyle(new NotificationCompat.BigTextStyle() .bigText(emailObject.getSubjectAndSnippet())) .build();
Benachrichtigungen im Posteingangsstil erstellen
Übernehmen
NotificationCompat.InboxStyle
hinzufügen, wenn Sie mehrere kurze Zusammenfassungszeilen hinzufügen möchten,
Ausschnitte aus eingehenden E-Mails. So können Sie mehrere Inhaltstexte hinzufügen,
die jeweils auf eine Zeile gekürzt werden, statt auf die eine durchgehende Textzeile
bereitgestellt von NotificationCompat.BigTextStyle
.
Um eine neue Zeile hinzuzufügen, rufen Sie
addLine()
wie im folgenden Beispiel dargestellt. Wenn Sie mehr als sechs
sind nur die ersten sechs sichtbar.
Kotlin
val notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.baseline_email_24) .setContentTitle("5 New mails from Frank") .setContentText("Check them out") .setLargeIcon(BitmapFactory.decodeResource(resources, R.drawable.logo)) .setStyle( NotificationCompat.InboxStyle() .addLine("Re: Planning") .addLine("Delivery on its way") .addLine("Follow-up") ) .build()
Java
Notification notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.baseline_email_24) .setContentTitle("5 New mails from Frank") .setContentText("Check them out") .setLargeIcon(BitmapFactory.decodeResource(resources, R.drawable.logo)) .setStyle( NotificationCompat.InboxStyle() .addLine("Re: Planning") .addLine("Delivery on its way") .addLine("Follow-up") ) .build();
Das Ergebnis sieht so aus:
<ph type="x-smartling-placeholder">Unterhaltung in Benachrichtigungen anzeigen
Übernehmen
NotificationCompat.MessagingStyle
um sequenzielle Nachrichten zwischen beliebig vielen Personen anzuzeigen. Dies ist ideal für
Messaging-Apps, da sie ein einheitliches Layout für jede Nachricht bieten,
Absendername und Nachrichtentext getrennt verarbeitet und jede Nachricht kann einzeln
mehrere Zeilen lang ist.
Wenn du eine neue Nachricht hinzufügen möchtest, rufe
addMessage()
,
Nachrichtentext, Empfangszeit und Name des Absenders übergeben werden. Sie können auch
diese Informationen als
NotificationCompat.MessagingStyle.Message
enthalten, wie im folgenden Beispiel gezeigt:
Kotlin
val message1 = NotificationCompat.MessagingStyle.Message( messages[0].getText(), messages[0].getTime(), messages[0].getSender()) val message2 = NotificationCompat.MessagingStyle.Message( messages[1].getText(), messages[1].getTime(), messages[1].getSender()) val notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_message) .setStyle( NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name)) .addMessage(message1) .addMessage(message2)) .build()
Java
NotificationCompat.MessagingStyle.Message message1 = new NotificationCompat.MessagingStyle.Message(messages[0].getText(), messages[0].getTime(), messages[0].getSender()); NotificationCompat.MessagingStyle.Message message2 = new NotificationCompat.MessagingStyle.Message(messages[1].getText(), messages[1].getTime(), messages[1].getSender()); Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.new_message) .setStyle(new NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name)) .addMessage(message1) .addMessage(message2)) .build();
Bei Verwendung von NotificationCompat.MessagingStyle
werden alle Werte, die
setContentTitle()
und
setContentText()
werden ignoriert.
Sie können
setConversationTitle()
, um einen Titel hinzuzufügen, der über der Unterhaltung angezeigt wird. Dies könnte die
nutzererstellten Namen der Gruppe oder, wenn es keinen spezifischen Namen hat, eine Liste mit
die Teilnehmenden des Gesprächs. Keinen Unterhaltungstitel festlegen für
Einzelchats, da das System das Vorhandensein dieses Felds als Hinweis verwendet
dass die Unterhaltung eine Gruppe ist.
Dieser Stil gilt nur für Geräte mit Android 7.0 (API-Level 24) und höher.
Mit der Kompatibilitätsbibliothek
(NotificationCompat
),
Wie bereits gezeigt, können Benachrichtigungen mit MessagingStyle
als Fallback
automatisch in einen unterstützten
erweiterten Benachrichtigungsstil um.
Wenn Sie eine Benachrichtigung wie diese für eine Chatunterhaltung erstellen, fügen Sie eine direkte Antwortaktion auswählen.
Benachrichtigung mit Mediensteuerelementen erstellen
Übernehmen
MediaStyleNotificationHelper.MediaStyle
um Steuerelemente für die Medienwiedergabe und Titelinformationen anzuzeigen.
Verknüpfte
MediaSession
im
-Konstruktor. So kann Android die richtigen Informationen
Medien.
Anruf
addAction()
bis zu fünfmal, um bis zu fünf Symbolschaltflächen anzuzeigen. setLargeIcon()
anrufen, um
Albumcover festlegen.
Im Gegensatz zu den anderen Benachrichtigungsstilen können Sie mit MediaStyle
auch die
Inhaltsansicht minimiert werden, indem Sie drei Aktionsschaltflächen festlegen, die ebenfalls
in der minimierten Ansicht. Geben Sie dazu die Aktionsschaltflächenindexe
setShowActionsInCompactView()
Das folgende Beispiel zeigt, wie Sie eine Benachrichtigung mit Mediensteuerelementen erstellen:
Kotlin
val notification = NotificationCompat.Builder(context, CHANNEL_ID) // Show controls on lock screen even when user hides sensitive content. .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setSmallIcon(R.drawable.ic_stat_player) // Add media control buttons that invoke intents in your media service .addAction(R.drawable.ic_prev, "Previous", prevPendingIntent) // #0 .addAction(R.drawable.ic_pause, "Pause", pausePendingIntent) // #1 .addAction(R.drawable.ic_next, "Next", nextPendingIntent) // #2 // Apply the media style template. .setStyle(MediaStyleNotificationHelper.MediaStyle(mediaSession) .setShowActionsInCompactView(1 /* #1: pause button \*/)) .setContentTitle("Wonderful music") .setContentText("My Awesome Band") .setLargeIcon(albumArtBitmap) .build()
Java
Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID) // Show controls on lock screen even when user hides sensitive content. .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setSmallIcon(R.drawable.ic_stat_player) // Add media control buttons that invoke intents in your media service .addAction(R.drawable.ic_prev, "Previous", prevPendingIntent) // #0 .addAction(R.drawable.ic_pause, "Pause", pausePendingIntent) // #1 .addAction(R.drawable.ic_next, "Next", nextPendingIntent) // #2 // Apply the media style template. .setStyle(new MediaStyleNotificationHelper.MediaStyle(mediaSession) .setShowActionsInCompactView(1 /* #1: pause button */)) .setContentTitle("Wonderful music") .setContentText("My Awesome Band") .setLargeIcon(albumArtBitmap) .build();
Weitere Informationen
Weitere Informationen zu MediaStyle
und
maximierbare Benachrichtigungen.