android - Firebase 通知是灰色的
问题描述
我正在使用 Firebase Cloud Messaging 向我的 Flutter 应用程序发送通知。它工作正常,但我的应用程序图标通知在 Google Pixel XL 上是灰色的。我可以看到轮廓,但由于某种原因,它仍然是灰色的。我在不同的文章中读到它与 Android SDK 级别有关,但是 Flutter 中的 minSdkVersion 已经是 16(小于 21)所以我不明白为什么颜色不会显示。
那么是否可以用颜色显示我的应用程序图标通知?
- 提前致谢
解决方案
在这里你可以阅读:
自定义默认通知
自定义默认图标
如果通知有效负载中没有设置图标,设置自定义默认图标允许您指定用于通知消息的图标。还可以使用自定义默认图标来设置从 Firebase 控制台发送的通知消息使用的图标。如果未设置自定义默认图标且未在通知负载中设置图标,则使用应用程序图标(呈现为白色)。
自定义默认颜色
您还可以定义通知使用的颜色。不同的 android 版本以不同的方式使用此设置:Android < N 使用此作为图标的背景颜色。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" />
你可以在这里找到更多信息。
你还需要有你的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
带有透明背景。
对于某些类型的图标,您需要在meta-tags
您已经添加到 yuor中的某些设备集上着色,AndroidManifest.xml
并且您的图标必须遵循一些规范(必须在透明背景中为白色)。您可以尝试在此处生成一个。试试看。请记住将其放在可绘制文件夹中并更新清单meta-tag
图标名称。
另请阅读这个SO question,它加强了我在这里所说的内容。
我在运行 API 级别 27 的 Pixel 2 模拟器上进行了尝试:
希望能帮助到你。
推荐阅读
- c - C中数字的位移
- c# - C#浮点/双差依赖于平台
- rest - nagios 中是否有 API 来检查针对特定 Windows 服务器/(或其服务)添加的最后 schedule_downtime?
- python - 如何根据用户的输入创建列表?带 Python
- javascript - 无法使用 Laravel 5.7 在 sweetalert 中取消删除
- android - 如何在androidx中更改工具栏的主页按钮颜色?
- android - 有没有办法在 Android.bp 文件中定义 C 语言宏?
- javascript - 如何计算每个子div的高度和宽度
- javascript - 无法在 div onclick 中使用方法
- karma-jasmine - Karma 打开本地硬盘驱动器路径而不是 localhost