我已经配置了客户端Android谷歌 Cloud 消息传递(GCM)来接收推送通知,但我无法在java中配置服务器以向设备发送通知 . 我怎么能?
您可以使用gcm-server.jar,其中包含用于GCM消息传递的帮助程序方法 . 要获得此jar,您可以通过Android SDK Manager安装 "[Deprecated]Google Cloud Messaging for Android Library" . 不要让弃用的名称让您感到困惑 . 仅弃用客户端部分,而不是服务器端 .安装完成后,您可以在 "ADT_SDKROOT\sdk\extras\google\gcm" 找到它 . 示例文件夹包含一个非常容易理解的演示服务器 .发送GCM消息只涉及几行代码:
"ADT_SDKROOT\sdk\extras\google\gcm"
final String GCM_API_KEY = "yourKey"; final int retries = 3; final String notificationToken = "deviceNotificationToken"; Sender sender = new Sender(GCM_API_KEY); Message msg = new Message.Builder().build(); try { Result result = sender.send(msg, notificationToken, retries); if (StringUtils.isEmpty(result.getErrorCodeName())) { logger.debug("GCM Notification is sent successfully"); return true; } logger.error("Error occurred while sending push notification :" + result.getErrorCodeName()); } catch (InvalidRequestException e) { logger.error("Invalid Request", e); } catch (IOException e) { logger.error("IO Exception", e); } return false;
对于“”“test”“”创建java控制台应用程序,添加gcm jar文件 .
try{ Sender sender = new Sender("<senderId>"); ArrayList<String> devicesList = new ArrayList<String>(); devicesList.add(<deviceId>); String data = "<data>"; Message message = new Message.Builder() .collapseKey("1") .timeToLive(3) .delayWhileIdle(true) .addData("message", data) .build(); MulticastResult result = sender.send(message, devicesList, 1); sender.send(message, devicesList, 1); System.out.println(result.toString()); if (result.getResults() != null) { int canonicalRegId = result.getCanonicalIds(); if (canonicalRegId != 0) { } } else { int error = result.getFailure(); System.out.println(error); } }
2 回答
您可以使用gcm-server.jar,其中包含用于GCM消息传递的帮助程序方法 . 要获得此jar,您可以通过Android SDK Manager安装 "[Deprecated]Google Cloud Messaging for Android Library" . 不要让弃用的名称让您感到困惑 . 仅弃用客户端部分,而不是服务器端 .
安装完成后,您可以在
"ADT_SDKROOT\sdk\extras\google\gcm"
找到它 . 示例文件夹包含一个非常容易理解的演示服务器 .发送GCM消息只涉及几行代码:
对于“”“test”“”创建java控制台应用程序,添加gcm jar文件 .