Firebase通知呈灰色颤动

时间:2019-01-05 21:59:10

标签: android firebase push-notification flutter firebase-cloud-messaging

我正在使用Firebase Cloud Messaging将通知发送到我的Flutter应用。它工作正常,但我的应用程序图标通知在Google Pixel XL上为灰色。我可以看到轮廓,但是由于某种原因,它仍然是灰色的。我读过不同的文章,它与Android SDK级别有关,但是Flutter中的minSdkVersion已经是16(小于21),所以我不明白为什么颜色不会显示。

是否可以用颜色显示我的应用图标以进行通知?

-提前感谢

3 个答案:

答案 0 :(得分:5)

Here您可以阅读:

  

自定义默认通知

     

自定义默认图标

     

设置自定义默认图标可让您指定所使用的图标   用于通知消息(如果通知中未设置图标)   有效载荷。还可以使用自定义默认图标来设置   从Firebase控制台发送的通知消息。 如果没有自定义   设置了默认图标,并且在通知有效负载中未设置任何图标,   应用程序图标(呈现为白色)。

     

自定义默认颜色

     

您还可以定义通知使用什么颜色。   不同的android版本以不同的方式使用此设置:   Android = N   使用它为图标和应用名称着色。

尝试将其放入您的AndroidManifest.xml

<!-- Set custom default icon. This is used when no icon is set for incoming notification messages. -->
<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_ic_notification" />
<!-- Set color used with incoming notification messages. This is used when no color is set for the incoming notification message.  -->
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/colorAccent" />

您可以找到更多信息here

您还需要定义colorAccent。您可以在res文件夹中创建一个colors.xml文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorAccent">#E91E63</color>
</resources>

在此文件夹中:/android/app/src/main/res/values

图标也必须位于drawable文件夹中。

但是请记住,该图标必须为white,且背景为透明

要为某种类型的icons上色,您需要在meta-tags中已经添加的某些设备上AndroidManifest.xml,并且图标必须符合某些规范(必须为白色,透明的背景)。您可以尝试生成一个here。试试看。请记住将其放在可绘制的文件夹上并更新清单meta-tag图标名称。

还请阅读这张SO question来加强我在这里说的话。

我尝试了运行API级别27的Pixel 2模拟器:

enter image description here

希望有帮助。

答案 1 :(得分:4)

我知道这个问题与Firebase通知有关,但是由于在搜索相同内容的local_notifiction灰色图标错误时出现了该帖子……所以最终我能够找到解决方案(在我的情况下,图标在调试模式下可以正常工作,但是在构建apk图标时会变成灰色框)

解决方案:- 在 Android / app / src / main / res 中创建一个名为 raw 的新目录,然后在该目录中添加一个名为 keep.xml 的文件并复制粘贴以下内容:-

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@drawable/*" />

答案 2 :(得分:3)

我做了以下工作,对我有用:

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

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

Folder Structure

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

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

Android Manifest

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

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

colors.xml

<color name="colorAccent">#00FF00</color>

我在以下Github链中也分享了此答案-Solution