Уведомление не отображается, когда приложение находится на переднем плане в Котлине - PullRequest
0 голосов
/ 20 ноября 2018

Я использую push-уведомление Firebase в kotlin, и ниже приведен фрагмент кода для показа push-уведомления

 mNotifyManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
        createChannel(mNotifyManager)
    val mBuilder = NotificationCompat.Builder(this, "bks-channel")
            .setLargeIcon(largeIcon)
            .setContentTitle("Bks")
            .setSmallIcon(R.drawable.app_icon)
            .setContentText(message)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent)
    mNotifyManager.notify(getRandomNumber(), mBuilder.build())

. И функция createChannel ():

    @TargetApi(26)
private fun createChannel(notificationManager: NotificationManager)
{
    val name = "bks"
    val description = "bks"
    val importance = NotificationManager.IMPORTANCE_DEFAULT

    val mChannel = NotificationChannel(name, name, importance)
    mChannel.description = description
    mChannel.enableLights(true)
    mChannel.lightColor = Color.BLUE
    notificationManager.createNotificationChannel(mChannel)
}

Ниже приведеныжурналы сервера:

 array(1) {
  [9]=>
  array(2) {
    ["name"]=>
    string(14) "ABL Staff USER"
    ["fcm_response"]=>
    array(2) {
      ["fields"]=>
      array(3) {
        ["data"]=>
        array(4) {
          ["click_action"]=>
          int(2)
          ["title"]=>
          string(19) "Attendance Reminder"
          ["body"]=>
          string(49) "Hi ABL Staff USER, Please mark your attendance ! "
          ["sound"]=>
          string(7) "default"
        }
        ["registration_ids"]=>
        array(11) {
          [0]=>
          string(152) "device_token_1"
        }
        ["notification"]=>
        array(4) {
          ["click_action"]=>
          int(2)
          ["title"]=>
          string(19) "Attendance Reminder"
          ["body"]=>
          string(49) "Hi ABL Staff USER, Please mark your attendance ! "
          ["sound"]=>
          string(7) "default"
        }
      }

То же самое работает для андроида o ниже на переднем и заднем плане, но не на андроиде o или выше

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Вы создаете канал под названием "bks-channel"?Похоже, вы не создаете bks-channel, а создаете канал с именем bks.

Обновите метод создания канала.

 @TargetApi(26)
  private fun createChannel(notificationManager: NotificationManager)  {
    val name = "bks-channel"
    val description = "bks"
    val importance = NotificationManager.IMPORTANCE_DEFAULT
    val mChannel = NotificationChannel(name, name, importance)
    mChannel.description = description
    mChannel.enableLights(true)
    mChannel.lightColor = Color.BLUE
    notificationManager.createNotificationChannel(mChannel)
  }
0 голосов
/ 20 ноября 2018

FCM отправила два типа уведомлений

  1. Уведомление
  2. Сообщение данных

Отправка сообщения данных для отображенияуведомление, когда приложение в фоновом режиме

Для более подробной информации, проверьте ссылку ниже

Firebase данные сообщения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...