58 votes

Pas de notification sonore lors de l'envoi d'une notification à partir de Firebase dans Android

Je suis l'envoi de notifications push de firebase pour mon Application Android. mais quand mon application est en arrière-plan firebase onMessageReceived méthode n'est pas appelée à la place firebase envoyer une notification au système indiquant la notification dans la barre d'état système. une notification apparaît dans la barre d'état système, mais pas de son pour la notification, même, j'ai permis à son de notification pour mon application dans les paramètres système.

ce que je peux faire pour jouer un son de notification lors de la notification reçue de firebase.

C'est la façon dont je suis l'envoi de la notification de firebase pour mon application article sur le Blog lien.

Comment Ajouter firebase dans votre Application Android

84voto

Isj Points 1231

Dans la notification de la charge utile de la notification il y a une touche sound.

À partir de la documentation officielle de son utilisation est:

Indique un son à jouer lorsque l'appareil reçoit une notification. Prend en charge par défaut ou le nom de fichier d'une ressource audio inclus dans le app. Les fichiers audio doivent résider dans /res/raw/.

Par exemple:

{
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",

    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon",
      "sound" : "mySound"
    }
  }

Si vous souhaitez utiliser par défaut le son de l'appareil, vous devez utiliser: "sound": "default".

Voir ce lien pour avoir toutes les clés possibles dans les charges: https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support

Pour ceux qui ne savent pas firebase gère les notifications différemment lorsque l'application est en arrière-plan. Dans ce cas, le onMessageReceived fonction n'est pas appelée.

Lorsque votre application est en arrière-plan, Android ordonne la notification les messages de la barre d'état système. Un utilisateur d'appuyer sur la notification s'ouvre à l' app launcher par défaut. Cela inclut les messages qui contiennent à la fois la notification et la charge utile de données. Dans ces cas, la notification est transmis à l'appareil de la barre d'état système, et les données de charge utile est livré dans les extras de l'intention de votre lanceur d'Activité.

22voto

KongJing Points 269

options adavaced sélectionnez les options avancées lors de la rédaction d'un message , puis choisissez le son activé choisissez activé

c'est ma solution

11voto

Sameer Points 80

Vous pouvez cela

 {
    "to" : "DEVICE-TOKEN",

    "notification" : {
      "body"  : "NOTIFICATION BODY",
      "title" : "NOTIFICATION TITILE",
      "sound" : "default"
    }
  }
 

@note pour le son des notifications personnalisées: -> "sound" : "MyCustomeSound.wav"

9voto

RKN Points 3722

L' onMessageReceived méthode est déclenché uniquement lorsque l'application est en avant-plan ou de la notification de la charge utile contient le type de données.

À partir de la Firebase docs

En aval, de la messagerie, de la FCM offre deux types de charge utile: notification et de données.

Pour la notification type, la FCM affiche automatiquement le message les périphériques des utilisateurs finaux sur le nom de l'application cliente. Les Notifications ont une ensemble prédéfini de visible à l'utilisateur les touches.
Pour les données de type, application client est responsable du traitement des messages de données. Les données n'ont que des messages personnalisés paires clé-valeur.

Utiliser les notifications lorsque vous voulez FCM pour gérer l'affichage d'un notification sur votre application client de son nom. Utiliser les données des messages lorsque vous voulez que votre app pour gérer l'affichage ou de traiter les messages sur votre Client Android app, ou si vous souhaitez envoyer des messages pour les appareils iOS lorsqu'il existe une FCM de connexion.

Plus bas dans les docs

Application du comportement lors de la réception des messages qui contiennent à la fois de notification de données et de charges dépend si l'application est en arrière-plan ou le premier plan-essentiellement, si oui ou non il est actif au moment de l' de la réception.
Quand dans le fond, les applications reçoivent la notification de la charge utile dans la barre de notification, et traite uniquement les données de la charge utile lorsque l' utilisateur appuie sur la notification.
Quand au premier plan, votre application reçoit un message d'un objet avec les deux charges utiles disponibles.

Si vous utilisez le firebase console pour envoyer des notifications, la charge utile contient toujours le type de notification. Vous devez utiliser le Firebase API pour envoyer la notification uniquement avec le type de données dans la notification de la charge utile. De cette façon, votre application est toujours averti dès qu'une nouvelle notification est reçue et l'application peut prendre en charge la notification de la charge utile.

Si vous voulez jouer un son de notification lorsque l'application est en arrière-plan à l'aide de la méthode conventionnelle, vous devez ajouter le paramètre de la notification de la charge utile.

3voto

AAA Points 267

fait comme ça

 @Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    //codes..,.,,

    Uri sound= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        builder.setSound(sound);

}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: