我已使用本地管理的设备组成功注册了我的Android应用,如下所述:Google Cloud Messaging (GCM) with local device groups on Android gives HTTP Error code 401。
此工作正常,我可以按照以下指南发送GCM消息从Android到Android:https://developers.google.com/cloud-messaging/downstream。
然而,这使用SERVER_API密钥,据说在客户端上躺着并不是一件好事。
我的问题是:在客户端上使用SERVER_API密钥是否存在问题?
第二:是否可以在不使用SERVER_API密钥的情况下发送GCM消息?
我尝试将从设备组注册收到的notification_key传递给此方法,但没有任何内容到达:
private void sendMessage2(String recipient) throws IOException {
Log.i(TAG, "Sending message to " + recipient);
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context);
AtomicInteger msgId = new AtomicInteger();
String id = Integer.toString(msgId.incrementAndGet());
Bundle data = new Bundle();
data.putString("hello", "world");
gcm.send(recipient, id, data);
Log.i(TAG, "Successfully sent message to " + recipient);
}
// recipient is the notification_key of the device group.
答案 0 :(得分:3)
不要在您的客户端上使用SERVER_API密钥!
此密钥是秘密,不会在二进制文件中进行模糊处理。有人可以轻松下载您的APK,运行strings
(或类似工具),然后代表您的应用程序开始发送GCM消息。
如果你想做Android< - > Android消息传递,你实际上需要做Android< - >服务器< - >机器人。