我已在我的应用程序中设置了Google云消息服务,并且一切正常,但如果我向我的应用程序发送消息,则消息仅由我知道deviceId的用户接收。如何将我的信息发送给使用我的应用程序的所有设备?向我所有应用程序的用户发送多播消息
非常感谢你
我已在我的应用程序中设置了Google云消息服务,并且一切正常,但如果我向我的应用程序发送消息,则消息仅由我知道deviceId的用户接收。如何将我的信息发送给使用我的应用程序的所有设备?向我所有应用程序的用户发送多播消息
非常感谢你
您无法将消息发送给未注册的设备。
首先,这些设备应该使用GCMRegistrar.register
进行注册并将registrationId发送到服务器,然后您就可以将消息发送到这些设备。
final String regId = GCMRegistrar.getRegistrationId(context);
if (!regId.equals("")) {
// Device is alredy registered. This checks whether it is registered
// on the server or not.
if (!GCMRegistrar.isRegisteredOnServer(context)) {
// Save regId to server
registerInBackground(context, regId);
} else {
Log.v(TAG, "Already registered");
}
} else {
GCMRegistrar.register(context, senderId);
}
设备上的客户端从GCM库接收装置,它是那么应该通过正常渠道发送到服务器,以及任何你想要的识别信息注册ID 。您的服务器需要记住哪个RegID发送给哪个用户或设备。有关更多信息,请参阅:http://developer.android.com/guide/google/gcm/gs.html
无法将GCM消息发送给尚未注册的设备。
如果您需要对所有设备进行故障安全广播,那么让您的应用定期进行拉动可能会更好。一个带有版本号的web服务器上的一个简单的json文件就足够了,但真正的痛苦是判断多久,什么时候以及如何被拉。
是的,我在我的应用程序中这样做过,但是当设备注册时,我怎么能知道deviceId发送给他们的文本? – 2012-08-08 14:26:05
您可以使用以下方法检查设备是否在服务器上注册。 GCMRegistrar.isRegisteredOnServer(上下文) – 2012-08-08 14:27:58
你是为了将它存储在你的服务器上。 – 2012-08-08 14:30:33