【问题标题】:FCM push notification showing white square icon instead of app icon when app is in Background当应用程序处于后台时,FCM 推送通知显示白色方形图标而不是应用程序图标
【发布时间】:2017-03-30 15:13:53
【问题描述】:

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

但没有一个解决方案真正适合我。谁能告诉我该怎么做?

【问题讨论】:

  • 你可能正在测试 5.0 或更高版本.. 对吗?如果是这样,那么请检查一下stackoverflow.com/questions/28387602/…
  • 感谢您的回复。我尝试了这个解决方案,但它不适合我。
  • 我的荣幸 :) 试试这个并告诉我会发生什么 notification.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_app_sky));

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


【解决方案1】:

我之前遇到过这个问题,然后就这样解决了:

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

【讨论】:

  • 感谢您的回答,但此解决方案不适用于我。还有其他选择吗?
【解决方案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"

  }
 }

因此,如果“图标”的名称与您在应用程序可绘制文件中的文件名相同,则如果您的应用程序在后台,FCM 会处理结果。在前台,它是您自己的自定义通知实现,它将起作用。只是让我知道,这解决了问题。

【讨论】:

  • 为我工作 - 但我真的很想知道如何在应用程序的代码中执行此操作,而不是依赖图标文件的匹配名称
猜你喜欢
  • 1970-01-01
  • 2019-02-25
  • 2022-12-22
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 2018-01-12
  • 2019-01-11
  • 1970-01-01
相关资源
最近更新 更多