GCM gives null message

android, google-cloud-messaging, push-notification

Solution

In the link you claim to get your code from, the message is extracted from the `price` parameter :

/**
 * 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);
}

However, in your server code, you put the message in a `message` parameter :

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

That would explain getting a null message.

It's possible, of course, that you changed the client code you got from that link, but since you didn't post your client code, I have no way of knowing that.

Problem

I am trying to get the message from server as a push notification in android. I am able to hit the server and but I got null message from server. I can see notification in android with no message. This is my code from server and I got android code from ANDROID HIVE ``` 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; } } ``` and I am using android hive example

Original source