Android 上的通知图标显示为白色正方形。

4
我正在使用Firebase Cloud Messaging与我的Flutter应用程序。
我正在使用Firebase控制台向我的应用程序发送推送通知。
我的问题是关于Android上的通知图标。
我已经使用Android Asset Studio创建了一个图标,如下所示:

enter image description here

然后,我已经将下载的资源包含在其相应文件夹android/app/main/res/mipmap中。

在清单上,我已经包含了所需的meta-data代码:

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@mipmap/ic_stat_logopush" />

但是当发送通知时,会显示一个白色的正方形。

enter image description here

enter image description here

我错过了什么或者做错了什么吗?

编辑:

这是我的当前文件:

enter image description here


这种情况是在每个设备上都发生还是只有某些设备上发生? - Milan Tejani
@CommonsWare,让我试试你的建议。 - mvasco
@NitishChaudhary,我已经创建了一个带透明背景的图像。我怎么确定它是真的透明的? - mvasco
你使用的图片尺寸是多少?上面附加的图片尺寸为512x512,对于通知来说太大了。你能否将其缩小至24x24、36x36和48x48,以适应hdpi、xhdp和xxhdpi的要求? - Nitish
为了检查透明度,您可以使用在线编辑器 - https://www.photopea.com/。 - Nitish
显示剩余4条评论
4个回答

4

通知图标的背景应该是透明的。 从Android 5.0 Lollipop开始,通知图标必须完全是白色的。


Android会将每个不完全透明的像素转换为纯白色(或深灰色,取决于状态栏背景颜色),只有透明的像素才会保持透明。 - snachmsm

4

感谢您的努力,我已经从Android Asset Studio下载了您提供的链接,将相应的drawable文件夹复制到res中,并更改了包括以下内容的AndroidManifest文件:<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_stat_capenergy" />。 - mvasco
但是通知图标也会产生相同的结果。 - mvasco
2
你的元数据标签是否在应用程序类标签内部? - Nitish
使用此链接确认图像源是否已添加到正确位置。链接 - Nitish
是的,我已经完全按照给定的教程进行了操作。 - mvasco
1
我知道你走在正确的路上。我稍后会从头开始尝试。感谢你的时间和努力。 - mvasco

2

我认为你应该查看这个。我也遇到了许多问题,所以我把那个答案保存在我的书签中;)


谢谢@Tarik,我认为我的图标可以用于那个用途。但也许不行。我会把它添加到我的问题中以确保。 - mvasco
@TarikHuber:如果整个答案都在那个链接里,请将问题标记为重复。 - Frank van Puffelen

0
main/AndroidManifest.xml中添加以下内容。
<meta-data android:name="{replace with your package name}.default_notification_icon"
           android:resource="@mipmap/launcher_icon" />
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
           android:resource="@mipmap/launcher_icon" />

并运行

flutter clean

无效的缓存,重新启动然后。
flutter pub get

现在应该可以工作了

注意:不要只是复制粘贴,花点时间将{包名}替换为您实际的包名。 ;)


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