J'utilise les notifications Firebase Push dans mon application Android. Je peux envoyer correctement une notification avec une icône personnalisée, mais je n'ai pas réussi à jouer mon son personnalisé. Je reçois toujours le son par défaut de mon appareil.
{
"registration_ids": "myToken",
"notification": {
"body": "my body",
"title": "my title",
"icon": "ic_notification",
"sound": "mysound.mp3" // I tried "mysound", "mysound.wav"...
},
"priority": "high"
}
Le son personnalisé est situé dans/res/raw
J'ai pu jouer mon son personnalisé avec les messages onMessageReceived
et Firebase mais pas avec le message de notification Firebase .
Mon appareil Android est Xiaomi Mi A1 et Oreo 8.1., Également essayé avec Xiaomi Mi A2 avec le même résultat.
J'ai essayé avec php et curl, avec node.js ... toujours le même problème, j'ai mon son par défaut.
METTRE À JOUR
Avec ce code pour node.js ne fonctionne pas non plus:
var registrationToken = 'xxxxxx';
var message = {
notification: {
title: 'my title',
body: 'my body',
},
Android: {
ttl: 3600 * 1000,
notification: {
color: '#ff0000',
sound: 'mysound.mp3'
}
},
token: registrationToken
};
Finalement j'ai trouvé la solution. Pour Android 8.0 et versions ultérieures, il est nécessaire de créer un canal de notification dans votre application:
NotificationChannel channel = new NotificationChannel('my_id', name, importance);
(plus d'infos: https://developer.Android.com/training/notify-user/channels#Java )
Ensuite, lorsque vous envoyez la notification:
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
};
Dans la documentation , incluez le son dans l'objet de notification sous l'objet Android. Donnez le nom du fichier son en valeur sonore. Les fichiers audio doivent résider dans / res/raw/. Voici un exemple de Node.js: -
var message = {
notification: {
title: 'sample title',
body: 'Hello, its Tuesday.',
},
Android: {
ttl: 3600 * 1000,
notification: {
icon: 'my_icon',
color: '#f45342',
sound: 'filename.mp3',
},
},
apns: {
payload: {
aps: {
badge: 42,
},
},
},
topic: 'industry-tech'
};
Essayez d'activer le son à partir de la console Firebase
Pour plus d'informations, regardez cette réponse
https://stackoverflow.com/a/44304089/9024123
peut-être que cela devrait être un problème et essayez également de supprimer «.mp3» dans l'élément sonore
"sound":"mySound"
je faisais également face au même problème. J'ai toujours eu le son par défaut mais je l'ai corrigé comme suit. J'utilise FCM-Push (module de noeud) https://www.npmjs.com/package/fcm-Push
var message = {
to : device_token,
collapse_key : '<insert-collapse-key>',
// data : {
// '<random-data-key1>' : '<random-data-value1>',
// '<random-data-key2>' : '<random-data-value2>'
// },
notification : {
title : 'Title ',
body : 'some Body',
sound : 'notification' // my .ogg file in /res/raw
},
Android: {
sound: 'notification' // my .ogg file name in /res/raw
}
};
Je n'ai pas essayé avec mp3 ou wav et dans votre question, il semble que vous n'ayez pas essayé avec le fichier .ogg (bien que je doute que cela ait un rapport avec le format audio mais vous pouvez essayer)