Уведомление об облачном сообщении Firebase открывает MainActivity вместо Target NotificationActivityAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Уведомление об облачном сообщении Firebase открывает MainActivity вместо Target NotificationActivity

Сообщение Anonymous »

Я пытаюсь открыть NotificationActivity, когда пользователь нажимает на уведомление, созданное Firebase Cloud Messaging (FCM). Однако приложение всегда запускает MainActivity вместо желаемого NotificationActivity.
Когда я создаю уведомление нажатием кнопки в приложении, оно правильно открывает NotificationActivity. Но когда уведомление генерируется FCM (через MyFirebaseMessagingService), нажатие на уведомление вместо этого открывает MainActivity.
Вот соответствующие части моего кода и конфигурации:
1. Служба обмена сообщениями Firebase

Код: Выделить всё

public class MyFirebaseMessagingService extends FirebaseMessagingService {

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getNotification() != null) {
showNotification(
getApplicationContext(),
remoteMessage.getNotification().getTitle(),
remoteMessage.getNotification().getBody()
);
}
}

public static void showNotification(Context context, String title, String message) {
String channelId = "general";

Intent intent = new Intent(context, NotificationActivity.class);
intent.setAction("OPEN_NOTIFICATION_ACTIVITY");
intent.putExtra("notification_title", title);
intent.putExtra("notification_body", message);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

PendingIntent pendingIntent = PendingIntent.getActivity(
context,
0,
intent,
PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT
);

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(message)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentIntent(pendingIntent)
.setAutoCancel(true);

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

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
channelId, "General", NotificationManager.IMPORTANCE_HIGH);
notificationManager.createNotificationChannel(channel);
}

notificationManager.notify(1, mBuilder.build());
}
}
2. Вот моя конфигурация AndroidManifest.xml: 3. Наблюдения
Ожидаемое поведение: при нажатии на уведомление должна открыться NotificationActivity, отображающая заголовок и текст, переданные в намерении.Фактическое поведение: вместо NotificationActivity открывается MainActivity.

Подробнее здесь: https://stackoverflow.com/questions/792 ... et-notific
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»