Что такое идентификационный номер 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 на устройство, например "эй, у вас есть что-то новое, идите на сервер". Теперь устройство запросит сервер для нового элемента. Здесь сервер будет идентифицировать зарегистрированного пользователя и предоставить ему соответствующие данные.