当前位置: 首页 > 知识库问答 >
问题:

Oreo后台未调用FCM通知

赏逸春
2023-03-14

当用户未连接到xmpp时,我正在使用FCM通知进行聊天。

FCM中有两种通知模式1。通知消息2。数据消息

如果我的应用程序最近被清除,我将不会使用数据消息作为通知消息

这种方法适用于除奥利奥以外的所有版本。

对于Oreo,我只有在应用程序未连接到xmpp且处于前台时才会收到通知。我的onMessageReception方法正在被调用。

但当该应用程序仅为奥利奥而被删除或从最近的应用程序中删除时,情况并非如此。

编辑:我尝试了一加3设备。

感谢您的帮助。

共有2个答案

解晟睿
2023-03-14

Oreo引入了通知通道的概念。在这里检查。

在启动时创建一个频道:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    // Create the NotificationChannel
    CharSequence name = getString(R.string.channel_name);
    String description = getString(R.string.channel_description);
    int importance = NotificationManager.IMPORTANCE_DEFAULT;
    NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
    mChannel.setDescription(description);
    // Register the channel with the system; you can't change the importance
    // or other notification behaviors after this
    NotificationManager notificationManager = (NotificationManager) getSystemService(
            NOTIFICATION_SERVICE);
    notificationManager.createNotificationChannel(mChannel);
}

在清单中设置ID:

<meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/notification_channel_id"/>

通知通道id与变量通道id相同

孔鹤龄
2023-03-14

这可能为时已晚,但One Plus手机有一个称为电池优化的功能。一旦你关闭应用程序的电池优化,你就会开始收到后台通知。我的One Plus 5T也有同样的问题。

 类似资料:
  • 我正在使用数据消息,正如Firebase文档所建议的,但没有成功...

  • 问题内容: 我在iOS上的FCM通知有问题。 我收到成功通知时,我的应用程序是在前台(回调中被激发),但是当应用程序在后台(我看不出在iOS中的通知栏的任何东西)我没有收到通知。 因此,我认为问题在于FCM发送的消息格式。我的服务器发送到FCM的json格式如下: 如您所见,我的json中有两个块:一个通知块(用于在后台接收通知)和一个数据块(用于在前台接收通知)。 我不明白为什么没有收到后台通知

  • 如何在Android奥利奥继续后台服务而不显示通知点?我使用通知继续我的后台服务,但我不想显示运行服务的通知。

  • 我正在使用Visual Studio+Xamarin开发一个Android应用程序,并尝试在Oreo(API26)上接收后台Firebase云消息通知。 问题 当我的应用程序是后台时,通知不会显示在通知抽屉中(仅在Android API 26 Oreo上)。然而,当应用程序被前景化时,通知是有效的。 注释 FCM通知适用于所有其他构建版本<26,包括后台和前台FCM消息(这些消息出现在通知抽屉中,

  • 我正在将FireBase推送通知集成到我的应用程序中。虽然我收到推送通知(当应用程序在后台时),但我的onMessageRec的(远程消息远程消息)从来没有被调用,无论应用程序是在前台还是后台。如果这是FCM的问题,或者我做错了什么。我在我的应用程序中使用com.google.firebase: Firebase消息传递: 9.0.0build.gradle.我已经在我的应用程序清单中声明了这两个

  • 问题内容: 我正在使用FCM服务器进行远程通知,它可以完美地与发送和接收通知配合使用。 我的问题是,当设备在后台运行时,不会调用此函数。 我尝试过的解决方案: 该功能: 当用户点击通知时调用。否则,它不会被触发。 添加到有效载荷。另外,我尝试了这个值。 这是我的功能代码: func application(_ application: UIApplication, didReceiveRemote