【问题标题】:Android 9+ device misses icon on application in heads-up notificationAndroid 9+ 设备在提示通知中缺少应用程序图标
【发布时间】:2020-04-10 06:25:57
【问题描述】:

TL;DR:Firebase 云消息仅在 Android 9+ 设备上的“heads-up”通知中不显示我的应用程序图标。 https://developer.android.com/guide/topics/ui/notifiers/notifications#Heads-up

加长版:

当我直接从 Firebase 或通过任何 Rest Client 向 https://fcm.googleapis.com/fcm/send 端点发送云消息时,一切看起来都很好,消息显示在屏幕上,带有标题、描述和图标,设备发出声音,它消失在一段时间,但停留在通知栏和通知抽屉中。

在消息传送到运行 Android 10 或 9(但不是全部)的设备之前,一切正常。通知栏和通知抽屉工作正常,消息本身看起来与旧 Android 版本完全相同。 但是提示错过了我的应用程序的图标。到目前为止,我还没有向 Firebase 发送任何带有有效负载的“图标”,但即使我将带有 URL 的“图标”属性设置为我的图标,它仍然不会出现在提示中。我已将相同的 URL 放在“图像”属性中,然后图像出现在提示中,但我认为它不是应该用于在通知中显示应用程序图标的属性。

有没有人注意到同样的问题?我尝试查看 Google Android 文档 - 但它看起来已经过时并且以 Android 8 结尾。我尝试了 Firebase 文档,但它说“图标”属性是可选的(这就是我没有附加它的原因)。

我已在以下位置测试通知:

  • Android 设备:5.1(工作)、7(工作)、8.1(工作)、9(工作!)、另一个 9(不工作)、10 (不起作用)
  • 安卓模拟器:8.1(工作),9(不工作),10(不工作)。

有效载荷只是:

{
    "to": "(...)",
    "notification": {
        "title": "Push from RestClient",
        "body": "Notification body"
    },
    "data": {}
}

当然,我已经添加了 Firebase 所需的 default_notification_icon、颜色和通道。这不是这里的解决方案。

【问题讨论】:

    标签: android firebase push-notification firebase-cloud-messaging android-notifications


    【解决方案1】:

    您需要在 manifest.xml 中添加 FCM 元数据

        <meta-data
            android:name="com.google.firebase.messaging.default_notification_icon"
            android:resource="@drawable/ic_logo_white" />
        <meta-data
            android:name="com.google.firebase.messaging.default_notification_color"
            android:resource="@color/app_theme_blue" />
        <meta-data
            android:name="com.google.firebase.messaging.default_notification_channel_id"
            android:value="@string/default_notification_channel_id" />
    

    【讨论】:

    • 我有你在评论中提到的元数据。这不是我的问题的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 2013-06-03
    • 2022-01-17
    相关资源
    最近更新 更多