在Oreo中未收到FCM推送消息

时间:2018-07-25 06:42:55

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

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


依赖性

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

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

我尝试从服务器发送数据通知。 onMessageReceived()中的Android O上没有任何电话。


在显示通知时添加了频道

 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 S2 One plus 6 中进行了检查。

除了在显示通知时设置通知渠道外,我还需要为Android O做其他事情吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:-1)

在服务器端检查此内容,将推送消息作为数据有效负载或通知发送 对于大于M的Android版本,它需要在数据有效载荷中发送通知 通过传递发送数据(在服务器端)。 当应用程序在后台运行时也可以使用。