Android Firebase通知没有自定义声音

kur*_*tko 8 android firebase firebase-cloud-messaging android-8.1-oreo

我在Android应用中使用Firebase推送通知.我可以使用自定义图标正确发送通知,但我还没有设法播放我的自定义声音.我总是得到设备的默认声音.

{
    "registration_ids": "myToken",
    "notification": {
        "body": "my body",
        "title": "my title",
        "icon": "ic_notification",
        "sound": "mysound.mp3" // I tried "mysound", "mysound.wav"...

    },
    "priority": "high"

}
Run Code Online (Sandbox Code Playgroud)

自定义声音位于/ res/raw中

我能够使用onMessageReceived和Firebase数据消息播放自定义声音,但不能使用Firebase通知消息.

我的Android设备是小米米A1和奥利奥8.1.也尝试了与小米米A2相同的结果.

我尝试使用php和curl,使用node.js ...总是一样的问题,我得到我的默认声音.

UPDATE

使用此node.js代码也不起作用:

var registrationToken = 'xxxxxx';

var message = {

    notification: {
      title: 'my title',
      body: 'my body',
    },
    android: {
      ttl: 3600 * 1000,
      notification: {
        color: '#ff0000',
        sound: 'mysound.mp3'
      }
    }, 
    token: registrationToken

};
Run Code Online (Sandbox Code Playgroud)

kur*_*tko 5

最后我找到了解决方案。对于 Android 8.0 及更高版本,有必要在您的应用中创建一个通知渠道:

NotificationChannel channel = new NotificationChannel('my_id', name, importance);
Run Code Online (Sandbox Code Playgroud)

(更多信息:https : //developer.android.com/training/notify-user/channels#java

然后当您发送通知时:

var registrationToken = 'xxxxxx';

var message = {

    notification: {
      title: 'my title',
      body: 'my body',
    },
    android: {
      ttl: 3600 * 1000,
      notification: {
        color: '#ff0000',
        sound: 'mysound.mp3',
        channel_id: 'my_id' // important to get custom sound
      }
    }, 
    token: registrationToken

};
Run Code Online (Sandbox Code Playgroud)

  • 您还做了其他什么事情来让它发挥作用吗?这对我来说仍然不起作用。请参阅:/sf/ask/4048125721/ (5认同)