我在我的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" />
但是没有一个解决方案真的对我有用。有人能告诉我该怎么做吗?
答案 0 :(得分:2)
{
"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"
}
}
所以,如果&#34; icon&#34;的名称与app drawable中的文件名相同,如果您的应用程序在后台,FCM会处理结果。在前台它是你自己的自定义通知实现,这将工作。只知道是否能解决这个问题。
答案 1 :(得分:0)
我之前遇到过这个问题并且解决了这个问题:
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());