2017-02-17 25 views
0
Bundle 
[{ 
    google.sent_time=1487229288769, 
    gcm.notification.created_at=2017-02-16 12:44:52, 
    gcm.notification.e=1, 
    gcm.notification.Content_available=1, 
    gcm.notification.badge=1, 
    gcm.notification.title=, from=388143837768, 
    google.message_id=0:1487229288775757%19aca14d19aca14d, 
    gcm.notification.body=hi, 
    gcm.notification.uid=160, 
    collapse_key=com.sid.Smessenger 
}] 

fcmから上記の応答があり、jsonに変換します。 上記のアンドロイドコードを確認してください。jsonのfcm通知応答を変換する

remoteMessageから応答を得ています。
getBody()でデータが取得されません。
null値のみを取得しています。

public void onMessageReceived(RemoteMessage remoteMessage) 
{ 
    Log.d(TAG, "FROM: " + remoteMessage.getFrom()); 
    remoteMessage.getFrom(); 

    if (remoteMessage.getData().size() > 0) 
     { 
     Log.d(TAG, "Message data: " + remoteMessage.getData()); 
     } 
    if (remoteMessage.getNotification() != null) 
     { 
     Log.d(TAG, "Message body:" + 
     remoteMessage.getNotification().getBody()); 

     String questionId = 
     remoteMessage.getData().get("gcm.notification.gid"); 
     String userId = 
     remoteMessage.getData().get("gcm.notification.uid"); 
     Log.e("Group ID", questionId); 
     Log.e("U ID", userId); 

     Bundle bundle = new Bundle(); 
     for (Map.Entry<String, String> entry : 
     remoteMessage.getData().entrySet()) { 
      bundle.putString(entry.getKey(), entry.getValue()); 
      Log.e(entry.getKey(), entry.getValue()); 

      //run it/// and get notification/// 
     } 
     // String created_at = remoteMessage. 
     sendNotification(remoteMessage.getNotification().getBody()); 
     } 

    // String value = bundle.getString("request"); 
} 

答えて

0

あなたの応答スニペットから、私はあなたがAndroidでそれをどうするべきか話していると思います。

それは は通常、我々はアンドロイドでそうであるように、あなたのバンドルから値を取得しようとしますが、FCM受信機能に 引数として受け取ったことを、JSONであるが、あなたのデータのバンドルに包まれました。

よりもむしろ "JSON" を考え、 "キー/値のペアを" と考えています。サーバー は、キーと値のペアでデータを送信します。あなたのアプリはあなたが得たインテント内のエクストラの中に のキーと値のペアとしてそのデータを受け取ります。あなたは あなたの鍵は、これだけ に結びついているのエキストラから値を取得するものを知っているこれらのキー(例えば、getStringExtra(「メッセージ」)、getStringExtraは(「タイトル」))

・ホープ、この解きますあなたの問題。

+0

はい私はuが簡潔に説明することができますしてください、こんにちは私は、のAndriodで初心者ですアンドロイド – john

+0

でこれを使用したいです? – john

+0

私はコードを書くのではなく、JSONとIntent Bundleのドキュメントを解析して解析する方法について説明します。私は今ここにスプーン供給を期待していない、いくつかの努力を入れてあなたの道を示している... – MobileEvangelist