应用程序处于后台时,FCM推送通知显示白色方形图标而不是应用程序图标

时间:2016-11-16 12:09:48

标签: android firebase firebase-cloud-messaging firebase-notifications

我在我的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" />

但是没有一个解决方案真的对我有用。有人能告诉我该怎么做吗?

2 个答案:

答案 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());