1

我已经在我的应用程序中设置了谷歌云消息服务并且一切正常,但是如果我向我的应用程序发送消息,则只有我知道 deviceId 的用户才能收到消息。我如何将我的消息发送到使用我的应用程序的所有设备?

非常感谢你

4

3 回答 3

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);
    }
于 2012-08-08T14:23:14.313 回答
2

无法向尚未注册的设备发送 GCM 消息。

如果您需要向所有设备进行故障安全广播,那么最好让您的应用定期拉取。一个简单的带有版本号的 web 服务器上的平面 json 文件就足够了,但真正的痛苦是判断它被拉取的频率、时间和方式。

于 2012-08-08T14:29:22.293 回答
1

设备上的客户端从设备上的 GCM 库接收注册 ID,然后应该通过正常渠道将其发送到您的服务器,以及您想要的任何识别信息。您的服务器需要记住哪个 RegID 用于哪个用户或设备。有关详细信息,请参阅:http: //developer.android.com/guide/google/gcm/gs.html

于 2012-08-08T14:22:24.757 回答