gpt4 book ai didi

android - 从系统托盘 android firebase FCM 中的通知中检索通知值

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:19 42 4
gpt4 key购买 nike

我正在使用 firebase 向我的应用发送通知。我想将每台设备收到的通知保存在本地数据库中。问题是,当应用程序在后台并收到通知时,方法 onMessageReceived() 不会被调用,而是根据文档将通知添加到系统托盘。该文档还提到了以下内容,用于在应用程序处于后台时接收通知:

In these cases, the notification is delivered to the device's system tray, and the data payload is delivered in the extras of the intent of your launcher Activity.

因此,当我尝试访问 Intent 中的附加功能时,找不到通知的键。我在 MainActivity.java 中的代码:

if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) {
Object value = getIntent().getExtras().get(key);
Toast.makeText(this, "Key: " + key + " Value: " + value, Toast.LENGTH_LONG).show();
}
}

我们从服务器发送的通知:

{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}

有人知道如何检索通知中的值吗?

最佳答案

这是预期的行为(如您在 documentation 中所见)。如果您使用的是 notification-only 消息负载(您就是这样),则只有当您的应用处于前景,如果没有,系统托盘将接收它。

data 在(强调我的)中被引用:

In these cases, the notification is delivered to the device's system tray, and the data payload is delivered in the extras of the intent of your launcher Activity.

data 消息负载(参见 Message Types )。

您必须发送包含notificationdata 的负载。像这样:

{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
},
"data": {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}

另见 my answer here .

关于android - 从系统托盘 android firebase FCM 中的通知中检索通知值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43193700/

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