2

Ich muss unten erwähnten Schlüssel von FCM Push-Benachrichtigung lesen.Get benutzerdefinierte Nutzlast von FCM in Android

{ 
     "from_id": "", 
     "data": { 
     "sender_id": "15", 
     "receiver_id": "42", 
     "sender_name": "Addy", 
     "alert": "Addy sent you a message.", 
     "notification_type": "message", 
     "message": "testing" 
       } 
    } 

I

 public void onMessageReceived(RemoteMessage remoteMessage) { 

     String title=remoteMessage.getData().get("sender_name"); 

     sendNotification(title, ""); 

     } 

Problem bin mit ist title=remoteMessage.getData.get("sender_name"); returns null, und wenn ich in Browser anzeigen es zeigt mir, dass Daten in sender_name vorhanden ist.

+0

Obwohl ich es nicht lösen kann, da ich mit Feuerbasis begonnen haben, aber ich kann Ihnen sagen, wo eine Lösung zu finden weil es mir sehr geholfen. Http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/ – SameerKhan1406

+0

@ SameerKhan1406 Ich versuche dies JSONObject Json = neue JSONObject (remoteMessage.getData(). toString()); Zeichenfolge title = json.getString ("sender_name"); aber ich erhalte JSONException. "Kein Wert für Absendername" Aber in logcat kann ich den Wert gegen Data PayLoad: tag sehen. –

+0

Erhalten Sie JSON-Objekt in Antwort eher einzelne Daten erhalten, dann verwenden Sie json.getString ("sender_name"); teilen Sie Ihren Code ich helfe Ihnen morgen in Ordnung? – SameerKhan1406

Antwort

1
public void onMessageReceived(RemoteMessage remoteMessage) { 
     Log.e(TAG, "From: " + remoteMessage.getFrom()); 

     if (remoteMessage == null) 
      return; 

     // Check if message contains a notification payload. 
     if (remoteMessage.getNotification() != null) { 
      Log.e(TAG, "Notification Body: " + remoteMessage.getNotification().getBody()); 
      handleNotification(remoteMessage.getNotification().getBody()); 
     } 

     // Check if message contains a data payload. 
     if (remoteMessage.getData().size() > 0) { 
      Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString()); 

      try { 
       JSONObject json = new JSONObject(remoteMessage.getData().toString()); 
       handleDataMessage(json); 
      } catch (Exception e) { 
       Log.e(TAG, "Exception: " + e.getMessage()); 
      } 
     } 
    } 
-1

Können Sie versuchen, diese

if (remoteMessage.getNotification() != null) { 
       Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody()); 
      }