Firebase推送通知在应用程序后台运行时显示错误的图标。

3

我的应用程序中使用了来自服务器的Firebase推送通知。当应用程序在前台时,正确的通知图标被显示。但是当应用程序在后台时,通知图标变成了一个填充圆圈

我查看了类似的问题,并且在我的清单文件中使用了正确的值。这里是我在清单文件中的内容:

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

通知颜色值似乎正常工作。填充的圆是我应用程序的主要颜色,如果我将其更改为某些随机RGB值,它会更新。但是,无论如何通知图标始终是填充的圆形。
以下是处理前台通知的方法,但这个方法是正确的:
private fun showNotification(notification: RemoteMessage) {
    createNotificationChannel()

    val notificationId = notification.data["notificationId"]
    val feedItemId = notification.data["itemId"]
    val feedType = notification.data["type"]

    val intent = Intent(this, MainActivity::class.java).apply {
        flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
        putExtra(EXTRA_NOTIFICATION, true)
        putExtra(EXTRA_NOTIFICATION_ID, notificationId)
        putExtra(EXTRA_NOTIFICATION_FEED_ITEM_ID, feedItemId)
        putExtra(EXTRA_NOTIFICATION_FEED_TYPE, feedType)
    }

    val pendingIntent = PendingIntent.getActivity(this, (0..1000).random(), intent, PendingIntent.FLAG_ONE_SHOT)

    val builder = NotificationCompat.Builder(this, getString(R.string.notification_channel_id))
        .setSmallIcon(R.drawable.ic_stat_name)
        .setContentTitle(notification.notification?.title ?: "")
        .setContentText(notification.notification?.body ?: "")
        .setStyle(NotificationCompat.BigTextStyle()
            .bigText(notification.notification?.body ?: ""))
        .setPriority(NotificationCompat.PRIORITY_DEFAULT)
        .setAutoCancel(true)
        .setContentIntent(pendingIntent)

    with(NotificationManagerCompat.from(this)) {
        notify(System.currentTimeMillis().toInt(), builder.build())
    }
}

因此,通知图标不是问题(与类似的问题中建议的一样),因为当应用程序在前台时,它会正确显示。

这回答解决了您的问题吗?Android推送通知:通知中未显示图标,而是显示白色正方形 - NOT_A_PROGRAMMER
2个回答

0

我曾经遇到过这个问题,对我来说解决方法是在AndroidManifest.xml中添加以下内容。

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

0
我终于在研究了三天后找到了问题和解决方案!
根据我的经验,你遇到的问题可能是你的默认通知图标和颜色的元数据放在了AndroidManifest.xml文件的MainFireBaseMessagingService标签内。
将这两个元数据复制并放置在application标签内。
请注意,提供的图标必须是带有透明背景的白色标志。
这样,在红米和摩托罗拉等MIUI设备上,就不会出现纯白/黑色方框通知图标的问题。

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