J'ai enregistré un canal de notification dans l'application Android à la suite de GoogleSamples https://github.com/googlesamples/Android-NotificationChannels
Cependant, comment puis-je obtenir l'ID du canal de notification de RemoteMessage afin de pouvoir le définir sur NotificationBuilder.
public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage)
{
//int id = remoteMessage.getNotificationChannel(); // -something like this I could not find
}
J'ai trouvé cette valeur dans l'objet RemoteMessage
value [3] = "notification_channel_system", afin que je puisse définir la valeur sur Notification push de firebase à l'aide de la valeur de clé Android_channel_id
https://firebase.google.com/docs/cloud-messaging/http-server-ref but I ne peut pas l'obtenir lorsqu'il est reçu par l'appareil.
Comment peut-on obtenir cet identifiant de PushNotification et le définir comme générateur de notification?
L'objet RemoteMessage
contient le canal dans sa Bundle
. Cependant, getData()
supprime tout ce qui commence par, entre autres, gcm.
. Malheureusement, cela inclut la clé de canal, qui est gcm.notification.Android_channel_id
.
Pour ce qui me concerne lorsque la notification Push est reçue lorsque l'application est au premier plan, je voulais tout de même l'afficher dans le système, à l'aide de l'ID de canal envoyé par le serveur.
Je suis capable d'y parvenir (certes un peu hacky) avec un simple fichier de deux lignes:
package com.google.firebase.messaging
fun RemoteMessage.getChannel() : String? = zzdu.getString("gcm.notification.Android_channel_id")
Ci-dessus concerne la version de messagerie Firebase 17.4.0. La réponse originale pour la messagerie firebase 17.3.4 est la suivante:
package com.google.firebase.messaging
fun RemoteMessage.getChannel() : String? = zzds.getString("gcm.notification.Android_channel_id")