Android - 如何设置抬头通知图标背景颜色(使用FCM或默认值)?

Android - How to set heads-up notification icon background color (using FCM or default value)?

我已经能够按照 Firebase 文档在通知中心实现通知 icon/text 颜色。但是,在 Android 11(或至少在我的 Galaxy S20 FE 上),抬头通知(当您刚收到通知时)显示蓝色背景中的圆圈图标(见屏幕截图),无论颜色如何我设置在 AndroidManifest.xml。我以为这可能是系统问题,但昨天,我收到了一条带有紫色背景的 Instagram 提醒通知。我还收到了一份来自 Uber Eats 的绿色餐点。我搜索了大约 2 个小时,但找不到与此特定问题相关的任何内容(它总是围绕经典 icon/color AndroidManifest.xml 设置)。

我要说的是:

我的 AndroidManifest.xml 相关配置:

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@mipmap/ic_notification" />
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/black"
    tools:replace="android:resource" />

终于找到解释了。

nurassyl(一位在 RNFB Github 中回复我的问题的用户)表示更改应用程序图标背景颜色对他有用,因为它获得了主色并使用了它。起初,我以为他在谈论通知图标背景(根据指南,它应该始终是透明的),因为他从未回答我的问题,但他确实在谈论主应用程序图标(mipmap ic_launcher 图标).

至于“主色”的颜色说法,那并不完全正确。从我的测试来看,它似乎考虑了应用程序图标中最主要的非黑色或白色(尚未尝试使用灰色阴影,但它们也可能会被忽略)。因此,如果您的应用程序图标是黑色背景上的黄色小徽标,即使黑色占主导地位,它也会将徽标的黄色视为用于 heads-up 通知背景的颜色。

就我而言,我认为问题已通过可能的软件更新自行解决,因为徽标颜色恰好与清单中所述的通知颜色相同。对于“有问题的”应用程序(让我开始讨论的那个),应用程序图标的徽标颜色(蓝色)和指定的通知颜色(黑色)不匹配,因此我会在 [=20= 中看到蓝色背景] 通知,但通知中心为黑色。

我希望遇到此线程的任何人都清楚解释和修复。