Проблема с перенаправлением уведомлений Firebase на активностьAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема с перенаправлением уведомлений Firebase на активность

Сообщение Anonymous »

Я использую Firebase для обработки уведомлений, и мне нужны уведомления с TEST_ACTION, которое является моим интерактивным действием в полезной нагрузке, чтобы отправить меня в мою RecounceeUserActivity, все работает нормально, за исключением одной проблемы, когда я помещаю приложение в фоновый режим и одновременно уведомляю с TEST_ACTION получено, когда я возобновляю работу приложения, оно отправляет меня в мою RecnoweUserActivity, но я хочу, чтобы оно отправляло меня только при нажатии на уведомление в раскрывающемся меню.
Это мой класс firebaseMessage
private fun sendNotification(message: RemoteMessage) {
val title = message.notification?.title.toString()
val body = message.notification?.body.toString()

val notificationIntent: Intent = if (message.notification?.clickAction.toString() == "TEST_ACTION") {
Intent(this, RecognizeUserActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
putExtra("message", body)
}
} else {
Intent(this, MainActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
putExtra("message", body)
}
}
val requestCode = System.currentTimeMillis().toInt()
val pendingIntent: PendingIntent = PendingIntent.getActivity(this, requestCode, notificationIntent, PendingIntent.FLAG_IMMUTABLE)

val channelId = "APP"
val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
val notificationBuilder: NotificationCompat.Builder =
NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.drawable.icon)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent)
.setStyle(NotificationCompat.BigTextStyle())

val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channel = NotificationChannel(
channelId,
"AUTHORIZATION NOTIFICATIONS",
NotificationManager.IMPORTANCE_DEFAULT
)
notificationManager.createNotificationChannel(channel)
}

val notificationId = System.currentTimeMillis().toInt()
notificationManager.notify(notificationId, notificationBuilder.build())
}

override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
sendNotification(message)
}

override fun handleIntent(intent: Intent) {
try {
if (intent.extras != null) {
val builder = RemoteMessage.Builder("FirebaseMessagingService")
for (key in intent.extras!!.keySet()) {
builder.addData(key!!, intent.extras?.getString(key))
}
onMessageReceived(builder.build())

} else {
super.handleIntent(intent)
}
} catch (e: Exception) {
super.handleIntent(intent)
}
}


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

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

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

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

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

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