Android Firebase通知为灰色颤振

Android Firebase通知为灰色颤振,android,firebase,push-notification,flutter,firebase-cloud-messaging,Android,Firebase,Push Notification,Flutter,Firebase Cloud Messaging,我正在使用Firebase云消息向我的Flitter应用程序发送通知。它工作正常,但我的应用程序图标通知是灰色的谷歌像素XL。我能看到轮廓,但由于某种原因,它仍然是灰色的。我在不同的文章中读到,它与Android SDK级别有关,但Flitter中的Minsdk版本已经是16(少于21),所以我不明白为什么颜色不会显示在屏幕上 那么,是否可以用这种颜色显示我的应用程序图标作为通知 --提前感谢您可以阅读: 自定义默认通知 自定义默认图标 通过设置自定义默认图标,可以指定使用的图标 如果通知中未设

我正在使用Firebase云消息向我的Flitter应用程序发送通知。它工作正常,但我的应用程序图标通知是灰色的谷歌像素XL。我能看到轮廓,但由于某种原因,它仍然是灰色的。我在不同的文章中读到,它与Android SDK级别有关,但Flitter中的Minsdk版本已经是16(少于21),所以我不明白为什么颜色不会显示在屏幕上

那么,是否可以用这种颜色显示我的应用程序图标作为通知

--提前感谢

您可以阅读:

自定义默认通知

自定义默认图标

通过设置自定义默认图标,可以指定使用的图标 如果通知中未设置图标,则显示通知消息 有效载荷。还可以使用自定义默认图标设置用户使用的图标 从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" />
在此文件夹中:
/android/app/src/main/res/values

此外,图标必须位于
可绘制的
文件夹中

但请记住,此图标必须是透明背景的白色

对于某些类型的要上色的图标,您需要在一些设备集上
元标记
您已经在yuor
AndroidManifest.xml中添加,并且您的图标必须遵循一些规范(在透明背景中必须为白色)。您可以尝试生成一个。试试看。记得把它放在drawable文件夹中,并更新manifest
meta标记
图标名

也请阅读这篇文章,以加强我在这里所说的内容

我已经在运行API级别27的Pixel 2模拟器上进行了尝试:


希望能有所帮助。

我知道这个问题是关于Firebase通知的,但因为在搜索本地通知灰色图标错误时,这篇文章出现了…所以我终于找到了解决方案(在我的情况下,图标在调试模式下工作正常,但在构建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/*" />

我做了以下几件事,它对我很有用:

  • 创建一个透明的白色通知图标(您可以使用以下工具:AndroidAssetStudio)
  • 下载zip文件夹,解压,你会看到它包含一个res文件夹和不同的可绘制文件夹。在“android\app\src\main\res”路径中复制并粘贴res文件夹的内容

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

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

  • 如果要更改图标的颜色,请查看上图。在通知图标标记之后添加元数据标记

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

  • #00FF00
    

    我在下面的Github链中也分享了这个答案-。

    你说的是什么类型的图标?托盘栏上的图标或您在锁定/向下滑动屏幕上看到的通知上的图标?锁定/向下滑动屏幕上看到的通知上的图标。它也是bw和颤振图标。是的,我添加了一条注释。嘿,那里^^。您最终有彩色通知图标了吗?谢谢您的回答,但我收到了一个
    错误:未找到资源颜色/颜色重音(又称com.package.package:color/colorAccent)
    错误。在哪里添加颜色资源?我将查看堆栈溢出的通知图标。它也变灰了。也许新版本的安卓系统应该是这样的?不过,snapchat、FB和其他人都有颜色。@PrinceHodonou顺便说一句,如果您没有定义colorAccent,您会得到那个错误。如果你用AS。试试看。我会更新我的答案,这样你就可以知道该怎么做了。我已经试过了:
    它编译了所有内容,但图标仍然是灰色的。谢谢你的帮助@你真奇怪。不幸的是,我没有那么幸运有一个像素XL来尝试一下。在不同的设备上,你看到的图标是真彩色的还是一直在bw中?请问您是否将图标设置为通知JSON有效负载?到目前为止,我所有的flutter FCM测试都没有在JSON有效负载中设置图标,而是在我的设备上以明亮的颜色给我一个flutter图标。你真的创造了我的一天,节省了我一天的搜索时间。但出于好奇,你是怎么发现的?只是大量的搜索、点击和试用。当我找到答案时,我会回到这个问题上来,这样其他人就不必面对同样的问题了。感谢@techpool的赏识,为什么这不适用于“tools:keep=“@mipmap/*”?
    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
        tools:keep="@drawable/*" />
    
    <color name="colorAccent">#00FF00</color>