我在我的android应用程序中使用FCM来管理消息推送。当应用程序在前台并且应用程序图标也可见(正确)时,它完全正常工作。但是当应用程序在后台运行时,我没有正确收到通知。它显示白色方形图标作为通知图标,而不是透明图标。我知道,FCM会自动处理后台操作。但是我需要显示我的应用程序图标而不是那个白色图标。注意:我只使用透明图标。我还尝试了下面的编码
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/rt_transparent_icon" />
<meta-data android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@android:color/holo_blue_bright" />
但是没有一个解决方案对我有效。有人能告诉我该怎么做吗?
我以前遇到过这个问题,并解决了它:
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.LOLLIPOP);
// LOLLIPOP or Marshmellew>>>>>>>>>>>>>>>>>>>>> KitKat or Less
return useWhiteIcon ? R.drawable.logo_new : R.drawable.logo;
}
只需在setSmallIcon()中调用此函数
nbuilder.setSmallIcon(getNotificationIcon());
{
"to" : "token",
"notification": {"body": "Body",
"title": "Title",
"click_action": "com.sample.test.OPEN_ACTIVITY",
"icon" : "ic_launcher"
},
"data": {
"image": "https://ibin.co/2t1lLdpfS06F.png",
"message": "Firebase Push Message Using API"
}
}
因此,如果“图标”的名称与应用程序drawable中的文件名相同,那么如果你的应用程序在后台,FCM会处理结果。在前台,它是您自己的通知自定义实现,可以正常工作。让我知道,这是否解决了问题。
我想为一个聊天应用程序实现FCM推送通知服务,我遵循Firebase文档中的步骤,当通知从Firebase控制台发送到我的设备时,我会得到通知。当我尝试使用http post to https://FCM.googleapis.com/FCM/send通过FCM将通知通过服务器端发送到设备时: 当应用程序处于活动状态并且我正在将此通知发送到我的设备时,Im在我的控制台日志中收到以下消息,所以我认为
我正在使用pushwoosh提供推送通知服务。根据Android文档,我使用了一个白色图标作为通知。但在一些设备上,我又看到了白色方块。 另一方面,我使用了一个彩色图标,我看到了彩色通知。为什么在某些设备上我可以使用彩色图标,而在另一些设备上,我总是看到白色图标?
index.js中的代码 bgmessaging.js中的代码负责应用程序在后台时的推送 为了在应用程序处于前台时带来图像,我使用了下面的代码:-
当应用程序处于前台时,我可以成功地接收带有图像的通知和数据消息。 当应用程序在后台/kill时,onMessageReceed(message)没有调用,所以我使用getIntent(),我得到了数据,但当应用程序在后台时,android os会使用系统托盘自动显示通知,但图像无法显示。 所以我的问题是用图像显示通知文本? 我使用django api发送通知和发送的数据如下所示 下面是我的onMe
当应用程序在前台时不接收推送通知,但当应用程序在后台时接收我已遵循来自https://medium . com/@ ankushaggarwal/GCM-setup-for-Android-push-notifications-656 cf DD 8 adbd的FCM教程
我的应用程序生成了一个通知,但我为该通知设置的图标没有显示。取而代之的是一个白色的方块。 我试过调整图标的png大小(尺寸720x720,66x66,44x44,22x22)。奇怪的是,当使用较小的尺寸时,白色的正方形更小。 我搜索了这个问题,以及生成通知的正确方法,从我读到的代码来看,应该是正确的。不幸的是,事情并不像他们应该的那样。