¿Han caducado los ID de registro de GCM?

Sé que los registros de C2DM expiran y se supone que debe actualizar periódicamente el ID de registro. ¿Es este el caso con GCM? Mirando el código siguiente en la guía de Android GCM (que se muestra a continuación), parece que sólo lo hace una vez y no es necesario actualizar, pero no veo que explícitamente escrito en cualquier lugar, por lo que sólo quería comprobar.

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

EDIT: ESTA RESPUESTA ES FORMA FUERA DE FECHA, NO TENGO NINGUNA IDEA LO QUE ES EL COMPORTAMIENTO CORRIENTE


Yo mismo encontré la respuesta. No es necesario volver a registrar explícitamente todo el tiempo, sólo una vez de acuerdo con el ejemplo de los documentos .

Además, a diferencia de las versiones anteriores de GCM y C2DM , la propia Google no actualiza la inscripción en sí: una vez que tenga el ID de registro de la inscripción inicial que está bien para ir, a excepción de un caso: todavía tiene que volver a registrarse cuando El usuario actualiza a una nueva versión (este caso también se maneja en el ejemplo en el enlace anterior):

Cuando se actualiza una aplicación, debe invalidar su ID de registro existente, ya que no se garantiza que funcione con la nueva versión. Debido a que no hay un método de ciclo de vida llamado cuando se actualiza la aplicación, la mejor manera de lograr esta validación es almacenando la versión de la aplicación actual cuando se almacena un ID de registro.

Creo que se actualiza con el tiempo, sí. De los documentos oficiales:

Un ID de registro existente puede dejar de ser válido en un número de escenarios, incluyendo: Si la aplicación se anula manualmente al emitir una intención de com.google.android.c2dm.intent.UNREGISTER. Si la aplicación se cancela automáticamente, lo que puede suceder (pero no se garantiza) si el usuario desinstala la aplicación. Si el ID de registro caduca. Google podría decidir actualizar los ID de registro. En todos estos casos, debe quitar este ID de registro del servidor de terceros y dejar de usarlo para enviar mensajes. Sucede cuando el código de error es NotRegistered.

Esto podría ocurrir en una solicitud de GCM desde su servidor de terceros, que devuelve una respuesta json con el error Unregistered Device .

Una vez que esto ocurra, le corresponde a usted actualizar los id correspondientes.

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

  • GCM: enviar notificaciones sólo para el usuario actual que ha iniciado la aplicación
  • Solicitud del ID de registro de Google Cloud Messaging (GCM) cada vez que se inicia la aplicación
  • Carga útil de notificación de GCM 3.0 que no muestra la notificación de Android cuando la aplicación está en primer plano
  • Enviar notificación en idioma árabe mediante GCM
  • Gestor de SDK de Android Biblioteca de GCM
  • GCM XMPP en Appengine?
  • Después de actualizar los servicios de reproducción de Google a las notificaciones de envío 8.4.0 mostradas por ellos mismos
  • Enviar notificación múltiple a GCM usando JSON
  • Lint se queja de que no se ha traducido la cadena gcm_defaultSenderId
  • Cómo solucionar el error de registro de Google Cloud Messaging: SERVICE_NOT_AVAILABLE?
  • ¿Debo solicitar un nuevo token cada vez que lance mi aplicación para Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.