Подтвердить что ты не робот

Срок действия регистра GCM истекает?

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

final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
  GCMRegistrar.register(this, SENDER_ID);
} else {
  Log.v(TAG, "Already registered");
}
4b9b3361

Ответ 1

РЕДАКТИРОВАТЬ: ЭТО ОТВЕТ - ПУТЬ ИЗ ДАТЫ, Я НЕ ИДЕЯ, ЧТО ТЕКУЩЕЕ ПОВЕДЕНИЕ


Я сам нашел ответ. Вам явно не нужно перерегистрироваться все время только один раз в соответствии с примером в документах.

Кроме того, в отличие от предыдущих версий GCM и C2DM, сам Google не не обновляет свою регистрацию сейчас: после того, как у вас есть идентификатор регистрации из начальной регистрации, вам хорошо идти, кроме для одного случая: вам все равно нужно перерегистрироваться, когда пользователь обновляется до новой версии (этот случай также обрабатывается в примере выше):

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

Ответ 2

Я думаю, что в конце концов он обновился, да. Из официальных документов:

Существующий идентификатор регистрации может перестать действовать в ряде сценариев, в том числе: Если приложение вручную отменяет регистрацию, вызывая намерение com.google.android.c2dm.intent.UNREGISTER. Если приложение автоматически незарегистрировано, что может случиться (но не гарантируется), если пользователь удаляет приложение. Если идентификатор регистрации истекает. Google может решить обновить регистрационные идентификаторы. Для всех этих случаев вы должны удалить этот идентификатор регистрации с стороннего сервера и прекратить его использовать для отправки сообщений. Случается, когда код ошибки NotRegistered.

Это может произойти в запросе GCM с вашего стороннего сервера, который возвращает ответ json с ошибкой Незарегистрированное устройство.

Как только это произойдет, вам будет необходимо обновить соответствующие идентификаторы.

http://developer.android.com/guide/google/gcm/gcm.html