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

5
我正在开发一个应用程序并设置推送通知。在大多数设备上(包括7.1.1和8.1.0模拟器设备),我的通知图标按预期工作。然而,在8.0.0设备上,当通知托盘打开时,会显示一个圆形实心色点,而不是图标;当托盘关闭时,在通知条中会显示一个蓝绿色的白色安卓机器人头像(在其他手机上,通知条中会显示一个实心点,而不是安卓机器人)。
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 中也尝试了一下,但没有效果。

根据这篇文章的建议,我打开并重新保存了所有带有背景颜色的png文件,但这也没有效果。

我尝试调整了 notifColor ,可以改变点的颜色,但仍然只是一个纯色点。

我认为这对此无关紧要,但我正在使用 react-native 和 react-native-fcm。我的编译SDK和构建工具版本都是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上仍然保持实心点状态。

谈到图像时,请发布预期和实际的图片。 - Eugen Pechanec
你最终解决了这个问题吗?我也遇到了同样的问题。 - Victor Cui
2个回答

0

尝试删除下面这行代码,对我有用

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

0

您需要为通知制作自定义图标,具体取决于设备/操作系统,因为您说您只会看到一个白色正方形。因此,请制作一个具有透明度和与您品牌要求相匹配的纯色自定义图标。


是的,正如您在问题中所看到的那样,我已经拥有了这个 - 在除Android 8.0.0之外的所有设备上都可以正常工作。 - davidpricedev
然后,请确保您的推送通知服务不会默认发送ic_launcher图标。在大多数情况下,通知服务可以将图标与通知标题、消息和其他参数一起发送。 - Samuel Eminet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接