Что такое идентификационный номер GCM?

Здравствуйте, я хочу добавить gcm в мое приложение. Мое приложение - новостное приложение. Пользователь может просматривать новости после регистрации. Приложение запрашивает интересы пользователей (экономика, спорт, автомобили и т.д.) И сохраняет их. Я хочу отправлять новости пользователю как уведомление от php и mysql. Я должен решить отправить новости, к которым пользователи. Поэтому мне нужны идентификаторы регистрации.

Это номер устройства Android? Или комбинация учетной записи google Android и номера устройства Android?
Или комбинация учетной записи google Android и номера устройства Android и идентификатора пользователя моего приложения?

Пример

Android-устройство id = a = > GCM RegID = a Android-устройство id = a, google account id = b = > GCM RegID = ab
Android-устройство id = a, google account id = b, application x user id = c = > GCM RegID = abc

Если x пользователь выйдет из приложения, а пользовательский логин на том же устройстве изменит GCM RegId? Если это не изменится, и я нажимаю новости об экономике для пользователя (который не интересуется экономикой), устройство покажет неправильное уведомление неверному пользователю. Итак, что такое идентификатор регистрации GCM?

Ответ 1

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

В некоторых старых версиях Android (до 4.0.4) для регистрации в GCM требуется учетная запись Google.

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

Ответ 2

Идентификатор регистрации - уникальный идентификатор конкретного пакета на конкретном устройстве. GCM идентифицирует цель, используя этот идентификатор.

В вашем случае этот идентификатор не решит вашу проблему.

Случай 1:

Если вы отмените регистрацию устройства у GCM при выходе из системы и зарегистрируйтесь снова, это не гарантирует, что идентификатор регистрации будет другим (может быть и не может быть).

Случай 2:

GCM обновляет время регистрации.

Таким образом, этот идентификатор не будет использоваться для определения зарегистрированного пользователя.


Возможное решение

Отправляйте только общее сообщение от GCM на устройство, например "эй, у вас есть что-то новое, идите на сервер". Теперь устройство запросит сервер для нового элемента. Здесь сервер будет идентифицировать зарегистрированного пользователя и предоставить ему соответствующие данные.