Отображение диалогового окна с предупреждением при нажатии на уведомление при отправке из Push-уведомления Firebase

Я использую push-уведомление Firebase в своем проекте. Но всякий раз, когда я нажимаю уведомление, всегда отображается часть else. Я хочу отображать текст уведомления в этом диалоговом окне при нажатии на уведомление.

Вот мой код в NotifService.class:

public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "FCM Service";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    NotificationCompat.Builder mBuilder =   new NotificationCompat.Builder(this)
            .setSmallIcon(R.mipmap.icon_main)
            .setContentTitle("Update from Refer Ncert")
            .setContentText(""+remoteMessage.getNotification().getBody())
            .setAutoCancel(true)
            .setLights(Notification.DEFAULT_LIGHTS,1000,20000)
            .setVibrate(new long[] { 1000, 1000})
            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("notifmsg",remoteMessage.getNotification().getBody());
    PendingIntent pi = PendingIntent.getActivity(this,0,intent,Intent.FLAG_ACTIVITY_NEW_TASK);
    mBuilder.setContentIntent(pi);
    NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(0, mBuilder.build());
}}

Вот код в OnCreate() MainActivity для отображения уведомления:

String notifmsg=getIntent().getStringExtra("notifmsg");

    if(notifmsg != null){
        new SweetAlertDialog(this)
                .setTitleText("Hello Readers!")
                .setContentText(notifmsg)
                .show();
    }
    else{
        new SweetAlertDialog(this)
                .setTitleText("Welcome Back")
                .setContentText("Continue reading your previous book by clicking on RECENT BOOK button below.")
                .show();
    }

2 ответа

Насколько я вижу, вы определяете намерение, но не отправляете его.

Добавьте это, чтобы кодировать ваш код после определения pendingIntent, и он должен работать:

pi.send();

Вы можете использовать это:

Intent intent = new Intent(this, MainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setContentTitle("Notification")
            .setContentText(messageBody)
            .setContentIntent(pendingIntent);
    NotificationManager notificationManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(0, notificationBuilder.build());
Другие вопросы по тегам