Регистрация на gcm несколько раз с одного устройства приведет к созданию нескольких идентификаторов или одного и того же и нескольких пользователей на одном устройстве
Я хочу знать, если я регистрирую свое приложение для Android несколько раз на gcm с одного и того же устройства, получу ли я каждый раз другой регистрационный идентификатор или один и тот же один раз после регистрации?
Подходя к моей второй проблеме, как показано ниже
если пользователь user1 выходит из системы и пользователь user2 входит в приложение на том же устройстве. Теперь предположим, что уведомление для пользователя user1 отправлено с сервера. Получит ли пользователь2 это уведомление или нет, если да, то как его можно избежать?
если пользователь user1 вошел в приложение, но user2 переустановил приложение и вошел в систему, но сервер все еще считает, что user1 зарегистрирован в этом устройстве, следовательно, когда мы отправляем уведомление пользователю user1, оно будет доставлено пользователю user2. Как с этим можно справиться?
если мое приложение andriod пытается зарегистрироваться несколько раз на gcm, получит ли оно другой регистрационный идентификатор или один и тот же?
1 ответ
AFAIK, это будет обрабатываться GCM, но, как указано на этом форуме, решением будет отфильтровать их на стороне клиента. В вашем уведомлении GCM должно быть указано, для какого пользователя оно предназначено. Тогда в вашем onReceive
Метод, который вы должны проверить, кто в настоящее время вошел в систему.
На ваш последний вопрос, согласно документации - Регистрация: клиентские приложения
Если ошибка в клиентском приложении приводит к нескольким регистрациям для одного и того же устройства, может быть трудно согласовать состояние, и клиентское приложение может закончиться дублированием сообщений.
Внедрение канонических идентификаторов поможет вам легче справиться с этими ситуациями. Канонический регистрационный идентификатор - это регистрационный токен последней регистрации, запрошенной клиентским приложением. Это идентификатор, который сервер должен использовать при отправке сообщений на устройство.
Если вы попытаетесь отправить сообщение, используя старый регистрационный токен, GCM обработает запрос, как обычно, но он включит канонический идентификатор в поле registration_id ответа. Обязательно замените регистрационный токен, хранящийся на вашем сервере, на этот канонический идентификатор, так как со временем старый регистрационный токен перестанет работать.