我使用Firebase API从我的服务器发送通知并使用数据:而不是通知:...当我使用通知时,声音有效。我只是设置了声音=默认值,它会在后台收到通知时播放。
当我使用DATA时,我仍然收到消息,但是当我设置sound = default时没有播放声音。我是否必须将我的声音作为mp3加载到项目中?或者我的FiremaseMessagingService.java
文件onReceive
中有什么要做的?
在使用通知的时候好像。使用ONY通知数据没有通过
答案 0 :(得分:0)
sound
参数是Notification payloads的预定义参数,其中通知消息是(根据docs):
FCM代表客户端应用自动向最终用户设备显示消息。通知消息具有一组预定义的用户可见键。
换句话说,系统是自动处理此系统的系统。所以你看到的行为是预期的行为。
使用Data payload时(来自上述相同文档):
客户端应用负责处理数据消息。数据消息只有自定义键值对。
您必须实现如何在onMessageReceived()
中处理有效负载中的详细信息(假设您的应用处于前台,您仍需要了解如何{{3}根据您的应用状态而定)。这包括您包含的sound
参数。
答案 1 :(得分:0)
有一个简单的方法可以做到这一点。
使用数据有效负载时,您不必在其中使用任何声音标签。
只需像这样在NotificationCompat.Builder上调用.setSound(如果有任何自定义声音,请更改URI)-
Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(uri);