GCM дает нулевое сообщение

Я пытаюсь получить сообщение с сервера в виде push-уведомления в android. Я могу ударить по серверу, но я получил сообщение null с сервера. Я вижу уведомление в андроиде без сообщения. Это мой код с сервера, и я получил код Android от 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; } } 

И я использую пример ульи андроида

В ссылке, на которую вы претендуете, чтобы получить код, сообщение извлекается из параметра price :

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

Это объясняет получение нулевого сообщения.

Конечно, возможно, что вы изменили код клиента, который вы получили от этой ссылки, но поскольку вы не опубликовали свой код клиента, я не знаю этого.

Hi в демонстрационном проекте вы получаете намерение.getExtras (). GetString («цена»); Цена здесь. Как вы используете 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); } 

Параметр и ключ переменной должны совпадать.

Вы протестировали эту веб-страницу, но сделали «сообщение» андроидного ключа идентичным:

Введите описание изображения здесь

Введите описание изображения здесь