我已经在我的应用程序中设置了谷歌云消息服务并且一切正常,但是如果我向我的应用程序发送消息,则只有我知道 deviceId 的用户才能收到消息。我如何将我的消息发送到使用我的应用程序的所有设备?
非常感谢你
我已经在我的应用程序中设置了谷歌云消息服务并且一切正常,但是如果我向我的应用程序发送消息,则只有我知道 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 消息。
如果您需要向所有设备进行故障安全广播,那么最好让您的应用定期拉取。一个简单的带有版本号的 web 服务器上的平面 json 文件就足够了,但真正的痛苦是判断它被拉取的频率、时间和方式。
设备上的客户端从设备上的 GCM 库接收注册 ID,然后应该通过正常渠道将其发送到您的服务器,以及您想要的任何识别信息。您的服务器需要记住哪个 RegID 用于哪个用户或设备。有关详细信息,请参阅:http: //developer.android.com/guide/google/gcm/gs.html