2013-07-26 7 views
8

私はアンドロイドのプッシュ通知としてサーバーからメッセージを取得しようとしています。私はサーバーにヒットすることができますが、私はサーバーからnullメッセージを受け取りました。私はメッセージなしでアンドロイドで通知を見ることができます。 これは、サーバーからの私のコードがあると私はANDROID HIVEGCMはヌルメッセージを返します

public class GCMBroadcast { 
    @POST 
    @Path("/getgcm") 
public String getGcmData(){ 
    String str="success"; 


       try { 
        System.out.println("From CLient"); 
        Sender sender = new Sender(
          "AIzaSyBbfXkbCYWQdE5qyjJKwl-YLBX-F01ICug"); 
        // add your own google api key in android menifest 
        // use this to send message with payload data 
        Message message = new Message.Builder() 
          .collapseKey("message") 
          .timeToLive(3) 
          .delayWhileIdle(true) 
          .addData("message", "Welcome to Push Notifications") 
          // you can get this message on client side app 
          .build(); 
        System.out.println("message:"+message); 
        System.setProperty("http.proxyHost", "192.168.1.110"); 
        // write you own proxy 
        System.setProperty("http.proxyPort", "8080"); 

        // write you own proxy host 
        // Use this code to send notification message to a single device 
        Result result = sender 
          .send(
            message, 
            "APA91bFEmQ53TKnJQXa0HbF9lXGTMEyRrp-6H9-_zZNBdFAUMsvXIG0rpvKcXn_6L5wBP77HskWw4svo6GLHZwfWdDf-yQCBAvIqp4fQF05cWqDtJ8mfNDnAQ8qdXByaEqwDmK3aQi0xIq7L3XGF1dSkbOOfBFIjlfDzlj4SG3z_SA-v3IUz_g4", 
            1); 
        System.out.println("Message Result: " + result.toString()); 

        // Use this code to send notification message to multiple 
        // devices 
        /*ArrayList<String> devicesList = new ArrayList<String>(); 

        // add your devices RegisterationID, one for each device 
        devicesList 
          .add("APA91bFEmQ53TKnJQXa0HbF9lXGTMEyRrp-6H9-_zZNBdFAUMsvXIG0rpvKcXn_6L5wBP77HskWw4svo6GLHZwfWdDf-yQCBAvIqp4fQF05cWqDtJ8mfNDnAQ8qdXByaEqwDmK3aQi0xIq7L3XGF1dSkbOOfBFIjlfDzlj4SG3z_SA-v3IUz_g4"); 

        // Use this code for multicast messages 
        MulticastResult multicastResult = sender.send(message, 
          devicesList, 0); 
        sender.send(message, devicesList, 0); 
        System.out.println("Message Result: " 
          + multicastResult.toString()); 
        */ 
       } catch (Exception e) { 
        e.printStackTrace(); 
        str="Failure"; 
       } 
     return str; 
    } 
} 

からアンドロイドのコードを持って、私はあなたがメッセージをpriceパラメータから抽出された、から、あなたのコードを取得すると主張するリンクでandroid hive example

+0

は、Googleからの成功応答を取得すると仮定すると、あなたは取り扱いのアプリのコードを投稿する必要がありますあなたが問題を見つけるのを助けたいと思ったらメッセージ。 – Eran

+0

アプリコードは[this](http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/)から、アンドロイドからサンプル –

答えて

10

を使用しています:

/** 
* Method called on Receiving a new message 
* */ 
@Override 
protected void onMessage(Context context, Intent intent) { 
    Log.i(TAG, "Received message"); 
    String message = intent.getExtras().getString("price"); 

    displayMessage(context, message); 
    // notifies user 
    generateNotification(context, message); 
} 

ただし、サーバーのコードでは、あなたはmessageパラメータにメッセージを入れて:

   Message message = new Message.Builder() 
         .collapseKey("message") 
         .timeToLive(3) 
         .delayWhileIdle(true) 
         .addData("message", "Welcome to Push Notifications") 

これは、ヌルメッセージの取得を説明します。

もちろん、そのリンクから取得したクライアントコードを変更した可能性もありますが、クライアントコードを投稿していないので、私はそれを知る方法がありません。

+0

素晴らしいそれは私のために働く。私は2日間これを苦労したが、今は完全に動作する。どうもありがとうございます。 –

+0

この回答は非常に役に立ちます – Steve

1

デモプロジェクトでは、あなたはintent.getExtras()。getString( "price")を取得しています。あなたはあなたの「名前」フィールドをprvideし、その名前のフィールドを使用して、私はまた、これを解決するメッセージを取得するにはPHPの管理者としてPHPを使用しています。..

@Override 
     protected void onMessage(Context context, Intent intent) { 
      Log.i(TAG, "Received message"); 
      String message = intent.getExtras().getString("message"); 
      displayMessage(context, message); 
      // notifies user 
      generateNotification(context, message); 
     } 
-1

価格here.Asは、パラメータと変数のキーが一致している必要があります。同じ

あなたはこのWebページを介してテストしたが、Androidのキーを作る「メッセージ」:

enter image description here

enter image description here

関連する問題