GCM给出空消息

我试图从服务器获取消息作为Android中的推送通知。 我能够击中服务器,但我从服务器得到空消息。 我可以看到通知在Android没有消息。 这是我从服务器的代码,我从ANDROID HIVE得到Android代码

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; } } 

我正在使用androidconfiguration单元的例子

Solutions Collecting From Web of "GCM给出空消息"

在声称获取代码的链接中,消息是从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") 

这将解释得到一个空消息。

当然,你可能改变了你从那个链接获得的客户端代码,但是因为你没有发布你的客户端代码,所以我无法知道这一点。

您好在演示项目中,您将得到intent.getExtras()。getString(“price”); 价格here.As你使用的PHP作为你的PHPpipe理员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); } 

参数和variables键必须匹配。

您通过此网页进行testing,但使android键“消息”相同:

在这里输入图像说明

在这里输入图像说明