我正在从firebase向我的Android应用程序发送推送通知 . 但是当我的应用程序处于后台时,不会调用firebase onMessageReceived方法而是调用firebase向系统发送通知,以便在系统托盘中显示通知 . 通知出现在系统托盘中,但没有通知声音,即使我已在系统设置中允许我的应用程序发出通知声音 .
当从firebase收到通知时,我可以做什么来播放通知声音 .
这就是我从firebase向我的app Blogpost link发送通知的方法 .
我正在从firebase向我的Android应用程序发送推送通知 . 但是当我的应用程序处于后台时,不会调用firebase onMessageReceived方法而是调用firebase向系统发送通知,以便在系统托盘中显示通知 . 通知出现在系统托盘中,但没有通知声音,即使我已在系统设置中允许我的应用程序发出通知声音 .
当从firebase收到通知时,我可以做什么来播放通知声音 .
这就是我从firebase向我的app Blogpost link发送通知的方法 .
8 回答
在通知的通知有效载荷中,存在声音键 .
从官方文档中可以看出:
例如:
如果要使用设备的默认声音,则应使用:
"sound": "default"
.请参阅此链接以了解有效负载中的所有可能密钥:https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support
对于那些不知道firebase在应用程序处于后台时处理通知的人 . 在这种情况下,不会调用onMessageReceived函数 .
选择 advanced options 时 Write a message ,并选择声音 activated
这是我的解决方案
你可以这样
自定义通知声音的@note: - >
"sound" : "MyCustomeSound.wav"
仅当app位于前台或通知有效内容仅包含数据类型时才会触发
onMessageReceived
方法 .来自Firebase docs
再往下docs
如果使用firebase控制台发送通知,则有效内容将始终包含通知类型 . 您必须使用Firebase API仅在通知有效内容中发送包含数据类型的通知 . 这样,当收到新通知并且应用可以处理通知有效负载时,您的应用始终会收到通知 .
如果您想使用传统方法在应用程序处于后台时播放通知声音,则需要add the sound parameter到通知有效负载 .
这样做
即使我从firebase控制台发送它,我也可以播放通知声音 . 要做到这一点,您只需要在事先选项中添加值“default”的关键“声音” .
试试这个....
或者按照KongJing,他说也是正确的,但您可以使用Firebase控制台 .
使用HTTP v1 API,它是不同的
Documentation
例: