我试图从服务器获取消息作为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;
}
}
我正在使用android hive example
答案 0 :(得分:10)
在您声称从中获取代码的链接中,邮件是从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")
这可以解释获得空消息。
当然,您可以更改从该链接获得的客户端代码,但由于您没有发布客户端代码,我无法知道这一点。
答案 1 :(得分:1)
您好,在演示项目中,您将获得intent.getExtras()。getString(“price”);价格在这里。当你使用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);
}
答案 2 :(得分:-1)