【问题标题】:FCM push message not receiving in Oreo奥利奥没有收到 FCM 推送消息
【发布时间】:2018-07-25 06:42:55
【问题描述】:

我已经实现了FCM。消息在Android N 和更低的设备中接收。


依赖

implementation "com.google.firebase:firebase-messaging:17.1.0"

我尝试从firebase 控制台发送消息。它显示在 Android N 中,但不在 Android O 中。

我已尝试从服务器发送数据通知。在Android O 中没有接到任何关于onMessageReceived() 的电话。


在显示通知时添加频道

 val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

    // Since android Oreo notification channel is needed.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val channel = NotificationChannel(channelId,
                "CRW notification channel",
                NotificationManager.IMPORTANCE_HIGH)
        notificationManager.createNotificationChannel(channel)
    }

    notificationManager.notify(0 /* ID of notification */, notificationBuilder.build())

我已经在 Samsung S2One plus 6 中检查了这一点。

除了设置通知渠道以显示通知外,我还需要为Android O 做任何额外的事情吗?

【问题讨论】:

  • 让你检查一下这个Notification not showing in Oreo
  • 是的,我在显示通知时添加了频道。
  • 在设置中自动启动后尝试发送通知
  • 过去 3 天我遇到了同样的问题,我的 FCM 消息是在 Android 7 上收到的,但不是在 8 上
  • 这个@sunsun 有什么更新吗?你解决了吗?

标签: android firebase push-notification firebase-cloud-messaging


【解决方案1】:

您是否将 FCM 设置为高优先级

将此添加到您的邮件正文中:

{
  ...
  "priority":"high"
  ...
}

高优先级。 FCM 尝试立即传递高优先级消息,允许 FCM 服务在必要时唤醒睡眠设备并运行一些有限的处理(包括非常有限的网络访问)。高优先级消息通常会导致用户与您的应用进行交互。如果 FCM 检测到他们没有检测到的模式,您的消息可能会被取消优先级。

参考:https://firebase.google.com/docs/cloud-messaging/concept-options#setting-the-priority-of-a-message

【讨论】:

【解决方案2】:

在服务器端选中此项,推送消息作为数据负载或通知发送 对于大于 M 的 android 版本,它需要在 Data Payload 中发送通知 通过传递发送数据(在服务器端)。 当应用在后台运行时也可以使用。

【讨论】:

  • 作为数据负载发送的通知。这在 Android L、M 和 N 中按预期工作(背景和前景)。
  • 检查此问题是否仅在后台出现
  • 我建议你同时发送通知和数据负载 { "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification":{ "title":"Portugal vs.丹麦”、“body”:“绝配!” },“数据”:{“尼克”:“马里奥”,“房间”:“葡萄牙VSDenmark”}}}
猜你喜欢
  • 2019-03-21
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
相关资源
最近更新 更多