1

J'essaie d'implémenter FCM dans mon application Android. Sur quelques téléphones, la notification est reçue lorsque l'application est en premier plan/arrière-plan/tué. Mais sur certains téléphones, il n'est reçu que lorsque l'application est en premier plan/arrière-plan. Lorsque l'application est supprimée, onMessageReceived et le programme de lancement getExtra ne sont pas appelés. J'utilise à la fois l'objet de données et de notification de l'API. Voici mon code Android -La notification Firebase ne se passe pas sur certains téléphones lorsque l'application est supprimée

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
Log.e("Here", "here"); 
if (remoteMessage.getData().size() > 0) { 
    Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString()); 
    try { 
    JSONObject json = new JSONObject(remoteMessage.getData()); 
    sendPushNotification(json); 
    } catch (Exception e) { 
    Log.e(TAG, "Exception: " + e.getMessage()); 
    } 
} 
if (remoteMessage.getNotification() != null) { 
    Log.e(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody()); 
} 
} 
+0

sur la notification téléphone non reçu, part la configuration mobile –

+0

Vous pouvez consulter ce lien, il vous aidera à https://stackoverflow.com/questions/37711082/how-to-handle-notification-when -app-in-background-in-firebase – Raja

+0

@Raja J'ai déjà essayé mais ça ne marche pas. –

Répondre

0

je suis tombé sur le même problème avec la notification et après des recherches nous avons découvert que la question est un appareil spécifique, différent dispositif fabrique aura différents traitement des notifications non seulement mais autres services aussi tels que VPN.

  • Malheureusement son par la conception par le dispositif fabrication

Killing the App sera également tuer ces services, vous devrez éduquer les utilisateurs finaux que votre application ne fonctionne pas sur la liste des périphériques , le seul appareil qui renvoie toujours des résultats positifs pour l'appareil Samsung.

Cheers.

+0

Il doit y avoir un moyen de contourner cela. Parce que le même périphérique reçoit des notifications de InShorts même lorsque l'application est supprimée. –

+0

Bonjour, d'après votre question et votre description «Sur certains téléphones, la notification est reçue lorsque l'application est en premier plan/arrière-plan/tué, mais sur certains téléphones, elle est uniquement reçue lorsque l'application est en premier plan/arrière-plan. cela signifierait que le périphérique spécifique bloque les notifications push comme expliqué dans ma réponse ... Si dans Short vous voulez dire en tuant l'application ou quelques secondes après avoir tué l'App qui signifie que le processus de réception de la notification vient de se terminer, t signifie que chaque processus ou service s'arrête instantanément.Si vous trouvez que ma réponse est utile, votez, applaudissez. –

+0

Il existe une application appelée InShorts. Il est capable de pousser la notification même lorsque l'application est tuée. –

0

J'ai rencontré un problème similaire aussi. Bien que certaines sources disent qu'il s'agit d'un problème de firebase, il s'agit plus du fabricant qui n'utilise pas la ROM native d'Android. En d'autres termes, des fabricants comme One Plus, MI, Oppo, Vivo, etc. utilisent une ROM personnalisée (réécrire le comportement du stock Android). Ainsi, lorsque l'application est supprimée par l'utilisateur, tous ses services sont également supprimés et donc aucune notification. Une façon de résoudre cela est de faire en sorte que les utilisateurs changent leurs paramètres.

L'article original peut être trouvé here.

0

Ajouter BootBroadcastReceiver dans le fichier Manifest

<receiver 
      android:name=".OnBootBroadcastReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      </intent-filter> 
</receiver> 

Créer fichier suivant Java. appelez le FirebaseMessagingReceiveService à l'intérieur.

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 

public class OnBootBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent i = new Intent("com.demo.FirebaseMessagingReceiveService"); 
     i.setClass(context, FirebaseMessagingReceiveService.class); 
     context.startService(i); 
    } 
}