繁体   English   中英

从Android向GCM发送上游主题消息

[英]Sending an upstream topic message from Android to GCM

如何从Android应用程序内部发送GCM消息,以使注册到特定主题的所有其他设备都收到该消息?

文档中说这是发送上游GCM消息的方式:

    GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
    String GCM_SENDER_ID = "715097164599";
    AtomicInteger msgId = new AtomicInteger();
    String id = Integer.toString(msgId.incrementAndGet());
    Bundle data = new Bundle();

    data.putString("message", "This is a GCM Topic Message!");

    try
    {
        gcm.send(GCM_SENDER_ID + "@gcm.googleapis.com", id, data);
    }
    catch(IOException e)
    {
        throw new RuntimeException(e);
    }

但是请注意,没有地方可以指定此消息应转到的主题。

我想到添加:

data.putString("topic", "/topics/global");

但这会将“ to”字段放在消息有效负载内,这不是GCM服务器所期望的。

如何在不使用GCM的HTTP接口的情况下向所有订阅者发送消息?

谢谢。

似乎此功能不可用(从设备到主题组的上游)。

您可以采取的一种解决方法(请参阅编辑)是向服务器发送实际的上游消息,并使服务器知道您的意图。 当然,您将需要将此逻辑添加到服务器代码中。 在此过程中,您可以在data添加一个值,以表示该消息打算在特定主题的下游广播。

编辑:有关潜在的安全风险,请参考下面的@TheWonderBird注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM