我已在我的應用程序中設置了Google雲消息服務,並且一切正常,但如果我向我的應用程序發送消息,則消息僅由我知道deviceId的用戶接收。如何將我的信息發送給使用我的應用程序的所有設備?向我所有應用程序的用戶發送多播消息
非常感謝你
我已在我的應用程序中設置了Google雲消息服務,並且一切正常,但如果我向我的應用程序發送消息,則消息僅由我知道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庫接收裝置,它是那麼應該通過正常渠道發送到服務器,以及任何你想要的識別信息註冊ID 。您的服務器需要記住哪個RegID發送給哪個用戶或設備。有關更多信息,請參閱:http://developer.android.com/guide/google/gcm/gs.html
無法將GCM消息發送給尚未註冊的設備。
如果您需要對所有設備進行故障安全廣播,那麼讓您的應用定期進行拉動可能會更好。一個帶有版本號的web服務器上的一個簡單的json文件就足夠了,但真正的痛苦是判斷多久,什麼時候以及如何被拉。
是的,我在我的應用程序中這樣做過,但是當設備註冊時,我怎麼能知道deviceId發送給他們的文本? – 2012-08-08 14:26:05
您可以使用以下方法檢查設備是否在服務器上註冊。 GCMRegistrar.isRegisteredOnServer(上下文) – 2012-08-08 14:27:58
你是爲了將它存儲在你的服務器上。 – 2012-08-08 14:30:33