Rich-Push-Benachrichtigungen empfangen

Sie können Bilddateien an Ihre Android-Benachrichtigungen anhängen. Das Hinzufügen visueller Komponenten kann die Interaktion Ihres Benutzers mit Push-Benachrichtigungen deutlich erhöhen.

Eingehende Rich-Push-Nachricht verarbeiten (FCM)

Wenn die App im Vordergrund ausgeführt wird, wird die Push-Nachricht von der App verarbeitet, die die Klasse FirebaseMessagingService erweitert, und auf folgende Weise in der Manifestdatei deklariert:

<service
    android:name=".MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>
WICHTIG

Die Klasse, die die onMessageReceived()-Implementierung enthält, verarbeitet die empfangenen Daten.

Wenn die Push-Nachricht eine Medien-URL enthält, steht die URL im Parameter RemoteMessage zur Verfügung, der an die Funktion onMessageReceived() übergeben wird. Verwenden Sie den Schlüssel attachment-url, wie im folgenden Codebeispiel veranschaulicht:

public class MyFirebaseMessagingService extends FirebaseMessagingService {
        @Override
        public void onMessageReceived(RemoteMessage remoteMessage) {
      Log.d("Remote Message", "RemoteMessage: " + remoteMessage.toString());
            // Check if message contains a data payload.
            if (remoteMessage.getData().size() > 0) {
                Log.d("Remote Message", "RemoteMessage: " + remoteMessage.getData());
                sendNotification(remoteMessage);
            }
    }
 
private void sendNotification(RemoteMessage message) {
        Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);

     String channelId = getString(R.string.default_notification_channel_id);
     Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
     NotificationCompat.Builder notificationBuilder =
                new NotificationCompat.Builder(this, channelId)
                        .setSmallIcon(R.drawable.ic_stat_ic_notification)
                        .setContentTitle(getString(R.string.fcm_message))
                        .setContentText(message.getData().get("body"))
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .setContentIntent(pendingIntent);
  
    //Handle image url if present in the push message 
        String attachmentUrl = message.getData().get("attachment-url");
  
    if (attachmentUrl != null) { 
    Bitmap image = getBitmapFromURL(attachmentUrl); 
    if (image != null) { 
      notificationBuilder.setStyle(new        NotificationCompat.BigPictureStyle().bigPicture(image)); 
        } 
        } 

     NotificationManager notificationManager =
              (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

     // Since android Oreo notification channel is needed.
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel(channelId,
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT);
            notificationManager.createNotificationChannel(channel);
     }

     notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
    }
}
WICHTIG

Wenn Sie NotificationCompat.BigPictureStyle festlegen, werden möglicherweise keine großen Bilder angezeigt. Um sicherzustellen, dass große Bilder immer angezeigt werden, legen Sie den nativen Notification.BigPictureStyle fest.

Beispiel einer Rich-Push-Benachrichtigung

Im Folgenden finden Sie ein Beispiel einer multimedialen Push-Benachrichtigung mit einem Bild:

For more information about rich push notifications with Android, see Engage with Rich Notifications.

Auf dieser Seite

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now