Maximierbare Benachrichtigung erstellen

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();
<ph type="x-smartling-placeholder">
</ph> Ein Bild, das eine minimierte Benachrichtigung und eine maximierte Benachrichtigung mit einem blauen Bild zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 1: Eine Benachrichtigung mit NotificationCompat.BigPictureStyle

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();
<ph type="x-smartling-placeholder">
</ph> Ein Bild, das eine minimierte und eine maximierte Benachrichtigung mit BigTextStyle zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 2: Eine Benachrichtigung mit NotificationCompat.BigTextStyle

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">
</ph> Ein Bild, das eine maximierte Benachrichtigung im Stil eines Posteingangs zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 3: Erweiterter Posteingang Benachrichtigung.

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();
<ph type="x-smartling-placeholder">
</ph> Ein Bild, das eine Benachrichtigung im Nachrichtenstil zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 4: Eine Benachrichtigung mit NotificationCompat.MessagingStyle

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();
<ph type="x-smartling-placeholder">
</ph> Ein Bild, das eine Benachrichtigung mit Medienstil zeigt <ph type="x-smartling-placeholder">
</ph> Abbildung 5: Eine Benachrichtigung mit MediaStyleNotificationHelper.MediaStyle

Weitere Informationen

Weitere Informationen zu MediaStyle und maximierbare Benachrichtigungen.