2013-07-26 2 views
8

서버에서 메시지를 Android에서 푸시 알림으로 보내려고합니다. 나는 서버에 충돌 할 수 있지만 서버에서 null 메시지를 받았습니다. 메시지가없는 안드로이드 알림을 볼 수 있습니다. 이 서버에서 내 코드는 내가 ANDROID HIVEGCM에서 Null 메시지를 표시합니다.

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

당신이 구글에서 성공 응답을 얻을 가정하면, 처리의 응용 프로그램 코드를 게시해야 문제를 찾는 데 도움이 필요하면 메시지. – Eran

+0

[this] (http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/) 및 android에서 앱 코드를 받았습니다. 샘플 –

답변

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") 

null 메시지가 발생하는 것으로 설명됩니다.

물론 해당 링크에서 가져온 클라이언트 코드를 변경 한 것은 가능하지만 클라이언트 코드를 게시하지 않았으므로이를 알 수있는 방법이 없습니다.

+0

정말 놀랍습니다. 나는 2 일 동안 이것을 위해 고생했다, 이제는 완벽하게 작동한다. 정말 고맙습니다. –

+0

이 답변은 매우 유용합니다. – Steve

1

데모 프로젝트에서 여러분은 intent.getExtras(). getString ("price")를 얻고 있습니다. 당신이 당신의 PHP 관리자로 PHP를 사용하고 가격 here.As는 "이름"필드를 prvide 그 이름 필드를 사용하여 메시지가 나는 또한이 문제를 해결 ..

@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

매개 변수와 변수 키와 일치해야합니다. 동일한

당신은이 웹 페이지를 통해 테스트를하지만, 안드로이드 키을 "메시지"

enter image description here

enter image description here

관련 문제