gpt4 book ai didi

android - 当应用程序在前台并调用 onMessageReceived 时不显示通知

转载 作者:行者123 更新时间:2023-11-29 14:17:32 41 4
gpt4 key购买 nike

我正在尝试在收到 fcm 消息且 APP 处于后台时显示通知。我尝试了不同风格的通知,但没有运气。通知不会显示

这是代码

public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(GlobalVar.TAG, "From: " + remoteMessage.getFrom());
super.onMessageReceived(remoteMessage);


String channelId = getString(R.string.notification_channel_id);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(remoteMessage.getNotification().getTitle())
.setContentText(remoteMessage.getNotification().getBody()).setAutoCancel(true);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

manager.notify(0, builder.build());

}

我知道这会被调用,因为我得到了日志。如果应用程序在后台,则 FCM 会显示通知。当应用程序处于前台时,上面的代码不显示它有什么建议吗?

PS:我在Application类中创建了 channel

我没有在日志猫中收到错误。我还按照以下代码设置所有通知设置。请注意,我的设备在后台时已经从 FCM 接收并显示通知。但是当它在前台并且“我”处理通知的显示时它不起作用

最佳答案

希望您的服务器以 data 键向您发送通知。

我在此处看到您的代码,您正在使用 remoteMessage.getNotification()

获取通知数据

现在您必须更改他们在 data 键中发送的服务器端脚本,如下所示 ( You can test temporary before changing server code ):

{
"to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
"collapse_key" : "type_a",
"data" : {
"body" : "Body of Your Notification in Data",
"title": "Title of Your Notification in Title",
"key_1" : "Value for key_1",
"key_2" : "Value for key_2"
}
}

然后你可以这样接收:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);

Log.d(TAG, "From: " + remoteMessage.getFrom());

// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
}

了解更多:

enter image description here

希望你能在这方面得到帮助。如果您遇到任何问题,请告诉我。

关于android - 当应用程序在前台并调用 onMessageReceived 时不显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54587043/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com