2017-08-22 2 views
0

Je travaille sur une application, qui reçoit des notifications de Firbase. Quand je les reçois, il ne les montre pas correctement. Lorsque j'essaie de changer l'icône, l'icône du lanceur apparaît toujours. De plus, les lumières et la vibration ne fonctionnent pas, aussi la boîte de réception ne fonctionne pas, elle montre juste une autre notification. J'ai essayé NotificationCompat.Builder et Notification.Builder mais cela ne marche pas. Mon code d'affichage des notifications:Android Studio Notification erronée affichée

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);   
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()); 
     builder.setLights(Color.BLUE, 2000, 2000) 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setContentTitle(remoteMessage.getData().get("username")) 
       .setContentText(remoteMessage.getNotification().getBody()) 
       .setVibrate(new long[]{0,500,0,500}) 
       .setWhen(remoteMessage.getSentTime()) 
       .setAutoCancel(true) 
       .setStyle(styles) 
       .setPriority(Notification.PRIORITY_HIGH) 
       .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) 
       .setContentIntent(pendingIntent); 

     notificationManager.notify(NOTIFICATION_ID, builder.build()); 

Est-il possible que ma notification Firebase ou écrase est-ce pas possible?

+0

Votre code est-il réellement exécuté? Peut-être que la notification que vous voyez est créée automatiquement par le système? – algrid

+0

Je reçois les notifications avec le service FirbaseMessagingService et si tout va bien avec le code, j'envoie la notification –

+0

ou est-ce que onMessageRecieved dans le service crée automatiquement une notification et l'affiche? –

Répondre

0

OK. J'ai trouvé mon problème. Je recevais des notifications via les fonctions Cloud de Firebase. Mais la méthode que j'essayais de montrer la méthode (onMessageRecieved) ne fonctionne que lorsque l'Appliction est au premier plan. J'ai donc cherché un peu et j'ai découvert que je devais remplacer la méthode handleIntent(Intent intent), qui fonctionne aussi lorsque l'application est en arrière-plan. J'ai dû changer un peu dans mon code pour la fonction Cloud Firebase (ajouter des données pertinentes à la partie données dans les notifications) et puis je peux recevoir les données de l'intention avec intent.getStringExtra("String") . Et maintenant ça fonctionne bien.