Skip to content

Live Updates für Android

Erfahren Sie, wie Sie Android Live Updates im Braze SDK verwenden, auch bekannt als Progress Centric Notifications. Diese Benachrichtigungen ähneln den Live-Aktivitäten für das Swift Braze SDK und ermöglichen es Ihnen, interaktive Sperrbildschirm-Benachrichtigungen anzuzeigen. Android 16 führt fortschrittsorientierte Benachrichtigungen ein, mit denen Nutzer:innen nahtlos von ihnen initiierte End-to-End-Journeys verfolgen können.

So funktioniert es

Sie können die Schnittstelle IBrazeNotificationFactory verwenden, um die Darstellung von Braze-Push-Benachrichtigungen anzupassen. Wenn Sie BrazeNotificationFactory erweitern, ruft Braze die Methode createNotification() Ihrer Factory auf, bevor die Benachrichtigung den Nutzer:innen angezeigt wird. Dabei wird ein Payload übergeben, der benutzerdefinierte Schlüssel-Wert-Paare enthält, die über das Braze-Dashboard oder die REST API gesendet wurden.

Anzeigen eines Live Updates

In diesem Abschnitt arbeiten Sie mit Superb Owl zusammen, dem Moderator einer neuen Spielshow, in der Wildtierrettungsteams darum wetteifern, wer die meisten Eulen retten kann. Das Team möchte Live Updates in seiner Android-App nutzen, um den Status eines laufenden Spiels anzuzeigen und dynamische Aktualisierungen der Benachrichtigung in Echtzeit vorzunehmen.

Ein Beispiel für ein Live Update unter Android

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Android Braze SDK integrieren.

Schritt 1: Eine benutzerdefinierte Notification Factory erstellen

Erstellen Sie in Ihrer Anwendung eine neue Datei namens MyCustomNotificationFactory.kt, die BrazeNotificationFactory erweitert, um zu steuern, wie Braze Live Updates angezeigt werden.

Im folgenden Beispiel hat Superb Owl eine benutzerdefinierte Notification Factory erstellt, um ein Live Update für laufende Spiele anzuzeigen. Im nächsten Schritt erstellen Sie eine neue Methode namens getTeamInfo, um die Daten eines Teams der Activity zuzuordnen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class MyCustomNotificationFactory : IBrazeNotificationFactory {
    override fun createNotification(payload: BrazeNotificationPayload): Notification? {
        val notificationBuilder = populateNotificationBuilder(payload)
        val context = payload.context ?: return null

        if (notificationBuilder == null) {
            brazelog { "Notification could not be built. Returning null as created notification." }
            return null
        }
        notificationBuilder.setContentTitle("Android Live Updates").setContentText("Ongoing updates below")
        setProgressStyle(notificationBuilder, context)
        return notificationBuilder.build()
    }

    private fun setProgressStyle(notificationBuilder: NotificationCompat.Builder, context: Context) {
        val style = NotificationCompat.ProgressStyle()
            .setStyledByProgress(false)
            .setProgress(200)
            .setProgressTrackerIcon(IconCompat.createWithResource(context, R.drawable.notification_small_icon))
            .setProgressSegments(
                mutableListOf(
                    NotificationCompat.ProgressStyle.Segment(1000).setColor(Color.GRAY),
                    NotificationCompat.ProgressStyle.Segment(200).setColor(Color.BLUE),
                )
            )
            .setProgressPoints(
                mutableListOf(
                    NotificationCompat.ProgressStyle.Point(60).setColor(Color.RED),
                    NotificationCompat.ProgressStyle.Point(560).setColor(Color.GREEN)
                )
            )

        notificationBuilder.setStyle(style)
    }
}

Schritt 2: Benutzerdefinierte Daten zuordnen

Erstellen Sie in MyCustomNotificationFactory.kt eine neue Methode für die Datenverarbeitung, wenn Live Updates angezeigt werden.

Superb Owl hat die folgende Methode erstellt, um den Namen und das Logo jedes Teams den erweiterten Live Updates zuzuordnen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class CustomNotificationFactory : BrazeNotificationFactory() {
    override fun createNotification(payload: BrazeNotificationPayload): Notification? {
        // Your existing code
        return super.createNotification(payload)
    }

    // Your new method
    private fun getTeamInfo(team: String?): Pair<String, Int> {
        return when (team) {
            "WBF" -> Pair("Wild Bird Fund", R.drawable.team_wbf)
            "OWL" -> Pair("Owl Rehab", R.drawable.team_owl)
            else  -> Pair("Unknown", R.drawable.notification_small_icon)
        }
    }
}

Schritt 3: Die benutzerdefinierte Notification Factory festlegen

Verwenden Sie in Ihrer Application-Klasse customBrazeNotificationFactory, um Ihre benutzerdefinierte Notification Factory festzulegen.

1
2
3
4
5
6
7
8
class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        // Tell Braze to use your custom factory for notifications
        Braze.customBrazeNotificationFactory = MyCustomNotificationFactory()
    }
}

Schritt 4: Die Activity senden

Sie können den REST-API-Endpunkt /messages/send verwenden, um eine Push-Benachrichtigung an das Android-Gerät einer Nutzerin oder eines Nutzers zu senden.

Beispiel-curl-Befehl

Superb Owl hat die Anfrage mit dem folgenden curl-Befehl gesendet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
curl -X POST "https://BRAZE_REST_ENDPOINT/messages/send" \
  -H "Authorization: Bearer {REST_API_KEY}" \
  -H "Content-Type: application/json" \
  --data '{
    "external_user_ids": ["USER_ID"],
    "messages": {
      "android_push": {
        "title": "WBF vs OWL",
        "alert": "2 to 4 1:33 Q4",
        "extra": {
          "live_update": "true",
          "team1": "WBF",
          "team2": "OWL",
          "score1": "2",
          "score2": "4",
          "time": "1:33",
          "quarter": "Q4"
        },
        "notification_id": "ASSIGNED_NOTIFICATION_ID"
      }
    }
  }'

Anfrageparameter

Schlüssel Beschreibung
REST_API_KEY Ein Braze-REST-API-Schlüssel mit messages.send-Berechtigungen.

Dieser kann im Braze-Dashboard unter Einstellungen > API-Schlüssel erstellt werden.
BRAZE_REST_ENDPOINT Ihre REST-Endpunkt-URL. Ihr Endpunkt hängt von der Braze-URL Ihrer Instanz ab.
USER_ID Die ID der Nutzerin oder des Nutzers, an die bzw. den Sie die Benachrichtigung senden.
messages.android_push.title Der Titel der Nachricht. Standardmäßig wird dieser nicht für die Live-Benachrichtigungen der benutzerdefinierten Notification Factory verwendet, kann aber als Fallback dienen.
messages.android_push.alert Der Nachrichtentext. Standardmäßig wird dieser nicht für die Live-Benachrichtigungen der benutzerdefinierten Notification Factory verwendet, kann aber als Fallback dienen.
messages.extra Schlüssel-Wert-Paare, die von der benutzerdefinierten Notification Factory für Live-Benachrichtigungen verwendet werden. Sie können diesem Wert einen beliebigen String zuweisen—im Beispiel-curl-Befehl wird jedoch live_updates verwendet, um zu bestimmen, ob es sich um eine Standard- oder eine Live-Push-Benachrichtigung handelt.
ASSIGNED_NOTIFICATION_ID Die Benachrichtigungs-ID, die Sie der Live-Benachrichtigung der ausgewählten Nutzerin oder des ausgewählten Nutzers zuweisen möchten. Die ID muss für dieses Spiel eindeutig sein und muss verwendet werden, um die bestehende Benachrichtigung später zu aktualisieren.

Schritt 5: Die Activity aktualisieren

Um das bestehende Live Update mit neuen Daten zu aktualisieren, ändern Sie die relevanten Schlüssel-Wert-Paare, die messages.extra zugewiesen sind, und rufen Sie dann mit derselben notification_id den Endpunkt /messages/send erneut auf.

New Stuff!