我正在使用Firebase Cloud Messaging将通知发送到我的Flutter应用。它工作正常,但我的应用程序图标通知在Google Pixel XL上为灰色。我可以看到轮廓,但是由于某种原因,它仍然是灰色的。我读过不同的文章,它与Android SDK级别有关,但是Flutter中的minSdkVersion已经是16(小于21),所以我不明白为什么颜色不会显示。
是否可以用颜色显示我的应用图标以进行通知?
-提前感谢
答案 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模拟器:
希望有帮助。
答案 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)
我做了以下工作,对我有用:
下载zip文件夹,解压缩,您将看到其中包含一个res文件夹和不同的可绘制文件夹。将res文件夹的内容复制并粘贴到“ android \ app \ src \ main \ res”路径中
然后打开AndroidManifest.xml文件并向其中添加以下行:
ic_stat_calendar_today是我的通知图标的名称。每个粘贴的可绘制文件夹都包含不同大小的具有相同名称的图标。
如果要更改图标的颜色,请检查上面的图像。在通知图标标签之后添加元数据标签
转到“ android \ app \ src \ main \ res \ values”并添加colors.xml文件
<color name="colorAccent">#00FF00</color>
我在以下Github链中也分享了此答案-Solution。