[英]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.