灰色方块作为使用Firebase通知的通知图标

时间:2016-08-26 01:37:54

标签: android firebase-cloud-messaging

我正在尝试将Firebase Cloud Messaging集成到我的Android应用中。但是,当应用在后台或已关闭时,Firebase通知会显示灰色方块图标,而不是应用程序的启动器图标。

如何在不实施Firebase服务器API和发送数据消息的情况下,将通知图标设为我的应用徽标?

5 个答案:

答案 0 :(得分:18)

从Firebase 9.8.0可以通过在Manifest中添加有关此内容的信息来更改此图标:

<meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/ic_stat_ic_notification" />
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/colorAccent" />

您可以在此处找到示例:

https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/AndroidManifest.xml

答案 1 :(得分:5)

它是firebase中的一个错误。如果您的应用位于前台并且从Firebase控制台发送通知,您将获得灰色图标。

解决方法是:通过API发送通知,而不是从控制台发送通知。

答案 2 :(得分:3)

它与Firebase无关。从Android 3.0开始,状态图标被修改,&#34;简单地由透明背景上的白色像素组成,alpha混合用于平滑边缘和内部纹理(如果适用)&#34; https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html。从我所看到的,启动Android 5.0,你被迫提供这些所有白色小状态图标,否则显示灰色方形图标。

此问题Icon not displaying in notification: white square shown instead的答案会进一步解释,并说明如何强制您的应用使用原始的ic_launcher图标,尽管这对我来说似乎不是一个好主意,因为您强迫它定位较旧的sdk,也没有遵循材料设计指南。

您真正应该做的是提供您可以在此处生成的小白色图标http://romannurik.github.io/AndroidAssetStudio/icons-notification.html将它们添加到您的项目中,然后配置FCM以按照接受的答案中的说明使用它们

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_ic_notification" />
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/colorAccent" />

答案 3 :(得分:1)

在透明背景上的25x25像素图像内创建基本形状。注意安全框架,并保持上下2像素自由。将图标以25x25导出为启用透明度的PNG文件。

答案 4 :(得分:0)

我使用了以下解决方案,并且在Flutter中对我有用:

  1. 创建一个透明的白色通知图标(您可以使用以下工具:AndroidAssetStudio

  2. 下载zip文件夹,解压缩,您将看到其中包含一个带有不同可绘制文件夹的res文件夹。将res文件夹的内容复制并粘贴到“ android \ app \ src \ main \ res”路径中

enter image description here

  1. 然后打开AndroidManifest.xml文件并向其中添加以下行:

ic_stat_calendar_today是我的通知图标的名称。每个粘贴的可绘制文件夹都包含不同大小的具有相同名称的图标。

enter image description here

  1. 如果要更改图标的颜色,请检查上面的图像。在通知图标标签之后添加元数据标签

  2. 转到“ android \ app \ src \ main \ res \ values”并添加colors.xml文件

enter image description here

Stackoverflow不允许我在此处添加colors.xml文件代码,因此我只是在上面的图像中添加代码,您将不得不在colors.xml中手动键入它。抱歉。

特别感谢github上的“ RumanaB”。