如何让通知图标在 Android 8.0.0 上正确显示?

Posted

技术标签:

【中文标题】如何让通知图标在 Android 8.0.0 上正确显示?【英文标题】:How do I get a notification icon to show up correctly on Android 8.0.0? 【发布时间】:2018-03-08 23:08:30 【问题描述】:

我正在开发一个应用程序并设置推送通知。大多数设备(包括 7.1.1 和 8.1.0 模拟器设备)上的通知图标都按预期工作。但是,在 8.0.0 设备上,当通知托盘打开时会显示一个圆形纯色圆点而不是图标,当托盘关闭时,通知栏中会显示一个蓝绿色和白色的 android 机器人头部(在其他手机上条中的点而不是 android 机器人)。

AndroidManifest.xml:

<meta-data
 android:name="com.google.firebase.messaging.default_notification_icon" 
 android:resource="@drawable/mynotif"/>
<meta-data 
 android:name="com.google.firebase.messaging.default_notification_color" 
 android:resource="@color/notifColor"/>

我从mipmap 中的图标开始,但将它们复制到drawable 并尝试过 - 但没有效果。

根据this,我打开并重新保存了所有带有背景颜色的 png - 但这没有任何效果。

我试过摆弄notifColor,我可以改变点的颜色,但它仍然只是一个纯色点。

我认为这并不重要,但我正在使用 react-native 和 react-native-fcm。我的 compile-sdk 和 build tools 版本都是 26。如果 firebase 版本很重要,这就是我在app/build.gradle 中的内容:

compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'

如何让通知图标在 Android 8.0.0 中正确显示?

更新

Android 8.0.0(左)和 Android 7.1.1(右,预期)的比较屏幕截图。

我还尝试在发送通知时加入图标设置。它将图标更改为我在 Android 7.1.1/8.1.0 上设置的图标,但在 8.0.0 上坚持使用实心点。

【问题讨论】:

在谈论图像时,发布预期和实际的图像。 你有想过这个吗?我遇到了同样的问题。 【参考方案1】:

您需要为通知制作一个自定义图标,具体取决于您所说的设备/操作系统,您只会看到一个方形的白色形状。因此,请制作一个符合您品牌要求的透明且纯色的自定义图标。

【讨论】:

是的,正如您在问题中看到的那样,我已经拥有了 - 它在 Android 8.0.0 以外的所有设备上都可以正常工作 然后确保你的推送通知服务默认不发送ic_launcher,在大多数情况下通知服务可以发送图标以及通知标题、消息和其他参数【参考方案2】:

尝试删除以下行,为我工作

<meta-data 
android:name="com.google.firebase.messaging.default_notification_color" 
android:resource="@color/notifColor"/>

【讨论】:

以上是关于如何让通知图标在 Android 8.0.0 上正确显示?的主要内容,如果未能解决你的问题,请参考以下文章

android 怎么让通知栏点击后不消失 但可以被按钮清除

如何在 Android 通知中添加这么大的图标?

如何在后台的android应用程序图标上计算推送通知消息徽章

如何在 Android 中禁用多个推送通知图标,我正在使用 Parse.com

Android 应用程序图标中的通知计数徽章

Android 如何在状态栏上隐藏 NotificationCompat.Builder 通知的图标?