我已在我的应用程序中设置了Google云消息传递服务,一切正常但如果我向我的应用程序发送消息,则只有我知道deviceId的用户才会收到消息。我如何将我的消息发送到使用我的应用程序的所有设备?
非常感谢
答案 0 :(得分:4)
您无法向未注册的设备发送消息。
首先,这些设备应使用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);
}
答案 1 :(得分:2)
无法将GCM消息发送到尚未注册的设备。
如果您需要向所有设备进行故障安全广播,那么让您的应用定期拉动可能会更好。具有版本号的网络服务器上的简单平面json文件就足够了,但真正的痛苦在于判断它被拉动的频率,时间和方式。
答案 2 :(得分:1)
设备上的客户端从设备上的GCM库接收注册ID,然后它应该通过正常渠道发送到您的服务器,以及您想要的任何识别信息。您的服务器需要记住哪个RegID转到哪个用户或设备。有关详细信息,请参阅:http://developer.android.com/guide/google/gcm/gs.html