Ich arbeite an einer App, in der ich eine Benachrichtigung anzeigen muss. Für die Benachrichtigung verwende ich FireBase Cloud Messaging (FCM). Ich kann Benachrichtigungen erhalten, wenn die App im Hintergrund ist.Bestimmte Aktivität öffnen, wenn Benachrichtigung in FCM geklickt wurde
Aber wenn ich auf die Benachrichtigung klicke, wird es umgeleitet auf home.java Seite. Ich möchte es auf Notification.java Seite umleiten.
Also, bitte sagen Sie mir, wie Sie Aktivität in auf Klick der Benachrichtigung angeben. Ich bin mit zwei Dienste an:
1.) MyFirebaseMessagingService
2.) MyFirebaseInstanceIDService
Dies ist mein Codebeispiel für onMessageReceived() Methode in MyFirebaseMessagingService Klasse.
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "FirebaseMessageService";
Bitmap bitmap;
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
// Also if you intend on generating your own notifications as a result of a received FCM
// message, here is where that should be initiated. See sendNotification method below.
}
/**
* Create and show a simple notification containing the received FCM message.
*/
private void sendNotification(String messageBody, Bitmap image, String TrueOrFalse) {
Intent intent = new Intent(this, Notification.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("Notification", TrueOrFalse);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setLargeIcon(image)/*Notification icon image*/
.setContentTitle(messageBody)
.setStyle(new NotificationCompat.BigPictureStyle()
.bigPicture(image))/*Notification with Image*/
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
/*
*To get a Bitmap image from the URL received
* */
public Bitmap getBitmapfromUrl(String imageUrl) {
try {
URL url = new URL(imageUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
return bitmap;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
entfernen "Benachrichtigung" von Ihrer fcm Nutzlast und es wird funktionieren –
Dank für deine Antwort! –
Sie wollen sagen, entfernen getNotification() von getNotification(). GetBody(); ?? –