Firebase 通知始终显示空白图标
Posted
技术标签:
【中文标题】Firebase 通知始终显示空白图标【英文标题】:Firebase Notification Always shows blank icon 【发布时间】:2017-02-11 05:26:38 【问题描述】:我是 FCM 的新手。我无法让 FCM 将我的应用程序图标用作通知图标,并且该图标始终为白色空白。
我将一个图标导入mipmap
文件夹,但似乎没有任何改变。正如一些家伙所说,这是因为棒棒糖通知为in this question
但问题是,FCM 通知会自动弹出,我无法让通知生成器覆盖该图标。怎么改?
【问题讨论】:
请发布您的代码。 @Bansal 有什么用?在 Lollipop 和上面的通知图标是白色的......问了无数次 Notification bar icon turns white in android 5 Lollipop的可能重复 @Selvin 这不是同一个问题,因为我不会自己在 firebase 中弹出通知,所以我无法控制图标和颜色。 @Mateusz Pryczkowski 你的答案是正确的,再次发布 【参考方案1】:这是 FCM 的默认行为。当应用程序处于后台时,它会显示白色图标。
使用此标签并将其放入您的清单中。对我来说,这很有效。希望它也适合你。确保元数据在应用程序内部,如quickstart中提到的示例
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<!-- [START fcm_default_icon] -->
<!-- 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" />
<!-- [END fcm_default_icon] -->
<!-- [START fcm_default_channel] -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
<!-- [END fcm_default_channel] -->
<activity
android:name=".EntryChoiceActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".kotlin.MainActivity" />
<activity android:name=".java.MainActivity" />
【讨论】:
这是我发现的唯一正确图标的方法。它是一个用于在后台模式下显示通知的 firebase 错误。 Firebase 选择默认应用图标,而不是您在通知生成器上的定义。 这个应该放在application
标签里面还是外面?
应用标签内
如何在 res 中放置 ic_app_icon?是PNG吗? SVG?有吗?每个 hdpi 都有一个吗?【参考方案2】:
如果你有这个问题
查看此链接:Icon not displaying in notification: white square shown instead
我遇到了同样的问题。我通过从设计师那里制作透明图像来解决。 确保您的徽标应为 72*72 像素。
注意:不要浪费时间在谷歌上搜索这个问题,你只需要一个 72*72 尺寸的透明图标。
【讨论】:
“答案”仅链接到重复问题不是答案... 我给了他确切的答案,这样他就不会浪费时间,专注于解决问题。 感谢我看到了链接。但是我应该在哪里实现通知生成器。导致 FCB android 自动弹出通知。 我投了你的票,因为这是我回答的一部分。但我无法替换 FCM 自动生成的通知图标。 @DäñishShärmà,你是对的。你的NOTE帮了我很多:)【参考方案3】:唯一对我有用的是在 Android Studio 中生成一个通知图标图像资产。 要将图片用作通知图标,只需将资产类型设置为“图片”并选择文件即可。
提示 #1:在透明背景上使用白色图标!
提示 #2:如果窗口右侧的预览仅包含白色方块,您的通知图标将看起来像这样 - 白色方块!
提示 #3:资产的名称应该添加到 AndroidManifest 中的meta-data
标签中
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/whatever_you_set_for_image_asset_name" />
来源:取自this answer
【讨论】:
【参考方案4】:将通知保持在 72 x 72 的小尺寸,并使其全白。请参阅此答案随附的照片。
然后将以下代码粘贴到您的清单中。
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_money" />
您可以使用 Android Studio 的默认图标包制作新图标。
为此,请右键单击您的 drawable 文件夹 > 新建 > 图像资源
【讨论】:
【参考方案5】:我遇到了同样的问题,按照这里的建议做了一切,但没有任何效果。
最终,在github issue 的帮助下,将 firebase 插件从 11.8.0 降级到 11.6.0 即可解决问题。
这也可能对某人有所帮助。
【讨论】:
【参考方案6】:当没有为传入通知设置图标时,firebase 将采用默认图标并显示通知。
要覆盖默认图标,请将以下代码添加到您的 Android 清单文件中
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_ic_notification" />
更多信息可以关注link
【讨论】:
以上是关于Firebase 通知始终显示空白图标的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Firebase Cloud Messaging 在前台显示多个通知