出现空白通知,无需任何代码调用

时间:2017-09-28 14:38:12

标签: android android-notifications

我的Android应用程序中遇到了非常奇怪的事情。在一些未知的情况下,通知栏中有时会出现空白通知,没有任何标题,正文和默认的灰色。唯一填充的是图标,这是我的默认应用程序图标(来自清单)。

当我手动创建通知时,项目中只有一个地方 - 通过rest api发送数据的意图服务。通知有自己的图标(不同于默认值),颜色,文本,进度条,并在服务运行时正常工作。我没有在此项目中配置任何云消息传递或推送通知。

我花了很多时间,我不知道为什么会出现上述空白通知。我会很感激任何提示如何防止它。

1 个答案:

答案 0 :(得分:0)

是的,我也面临这个问题,当应用程序关闭时,通知会像这样显示。我在服务器端解决了这个问题。

FCM(Firebase云消息传递)中有两种类型的消息:

  1. 显示消息:仅当您的应用处于前台时,这些消息才会触发onMessageReceived()回调

  2. 数据消息:即使您的应用处于前台/后台/被杀,这些消息也会触发onMessageReceived()回调

  3. Firebase小组还没有开发用于向您的设备发送data-messages的用户界面。

    请参阅此链接以实现

    https://fcm.googleapis.com/fcm/send

    以下标题:

    密钥: Content-Type价值: application/json

    密钥: Authorization价值: key=<your-server-key>

    正文使用主题:

    {
        "to": "/topics/my_topic",
        "data": {
            "my_custom_key" : "my_custom_value",
            "other_key" : true
         }
    }
    

    或者将其发送到特定设备:

    {
        "data": {
            "my_custom_key" : "my_custom_value",
            "other_key" : true
         },
        "registration_ids": ["{device-token}","{device2-token}","{device3-token}"]
    }
    

    注意:请确保您没有添加JSON密钥通知

    注意:要获取服务器密钥,您可以在firebase控制台中找到它:您的项目 - &gt;设置 - &gt;项目设置 - &gt;云消息传递 - &gt;服务器密钥