2013-05-27 4 views
8

В моем приложении я хочу отправить уведомление конкретному пользователю независимо от устройства. Пользователь может войти в приложение с любого устройства.Отправьте сообщение GCM конкретному пользователю

Это первый раз, когда я использую GCM. Я прочитал документ, в котором говорится, что когда устройство зарегистрировано на сервере GCM, устройство отправляет этот уникальный идентификатор на сервер, а затем сохраняет это значение для отправки сообщений.

Затем как отправить уведомление конкретному пользователю при входе в приложение с разных устройств?

+0

см это http://sunil-android.blogspot.in/2013/05/gcm-in-android.html –

ответ

6

Этот уникальный идентификатор (aka Registration ID) уникален с учетом приложения/устройства, поэтому, если этот пользователь входит в службы GCM на другом устройстве, он будет генерировать еще один идентификатор регистрации.

Идентификатор, выданный серверами GCM, в приложение Android, которое позволяет ему получать сообщения. После того, как приложение Android имеет регистрационный идентификатор , он отправляет его на сервер сторонних приложений, , который использует его для идентификации каждого устройства, зарегистрированного для приема сообщений для данного приложения для Android. Другими словами, идентификатор регистрации привязан к конкретному Android-приложению, запущенному на определенном устройстве.

Когда вы говорите в журнале, я думаю, что вы говорите на своем сервере, верно?

Я спрашиваю об этом, потому что для услуг GCM требуется учетная запись Google, если ваше приложение нацелено на версии до 4 API.

Учетная запись Google не является обязательной требованием для устройств под управлением Android 4.0.4 или новее.

Если GCM обнаруживает учетную запись google на устройстве, она может получить доступ к этой услуге. Если GCM не обнаруживает учетную запись, она возвращает ошибку ACCOUNT_MISSING.

Таким образом, может случиться, что доступ к службам GCM с учетной записью google не является вашим, если вы используете другое устройство, которое ранее было зарегистрировано в учетной записи Google.

Но если важная учетная запись управляется вашим сервером, то я думаю, что это не имеет большого значения.

Обновлено:

Вы должны послать уведомление всего RegistrationID, принадлежащего пользователю, подключенного к серверу. Вы не можете знать, какое устройство использует пользователь, если вы используете несколько серверов на своем сервере.

You can use multicast

Reference:GCM

+0

Yes.User должны войти в свой сервер. – Sunny

+0

Я думаю, что могу проверить идентификатор пользователя + уникальный идентификатор на своем сервере, а затем отправить уведомление. – Sunny

+0

С уникальным идентификатором достаточно отправить уведомление, но GCM может его изменить, тогда вам придется обновить уникальный идентификатор, привязанный к идентификатору пользователя в вашей базе данных. Дополнительную информацию о ссылке я предоставил [http://developer.android.com/google/gcm/gcm.html#server](http://developer.android.com/google/gcm/gcm.HTML # сервер). – AlexBcn

Смежные вопросы