GCM elimina el ID de registro antiguo si el usuario instala la aplicación de nuevo inmediatamente después de la desinstalación?

Llegué a saber que GCM marca el ID de registro para la eliminación cuando no puede enviar la próxima notificación de inserción.

Pero en mi caso tras la situación pasó a mi usuario.

Escenario :

1) Mi usuario ha instalado la aplicación y su dispositivo está registrado en GCM.

2) El mismo usuario desinstalado e instalado la aplicación de nuevo inmediatamente. La segunda vez se genera un nuevo ID de registro.

3) Estos dos identificadores de registro se almacenan en mi base de datos.

4) Ahora este usuario en particular está recibiendo dos notificaciones push.

Ahora tengo las siguientes preguntas:

Preguntas:

  1. ¿GCM eliminará el registro antiguo después de algún tiempo?
  2. Por favor, sugerirme cómo manejar esta situación?

De la documentación oficial:

Cómo se desinstala la desinstalación de la aplicación cliente

Una aplicación cliente se puede anular el registro automáticamente después de que se desinstale. Sin embargo, este proceso no ocurre inmediatamente. Lo que sucede en este escenario es:

  1. El usuario final desinstala la aplicación cliente.
  2. El servidor de aplicaciones envía un mensaje al servidor de conexión GCM.
  3. El servidor de conexión GCM envía el mensaje al cliente GCM en el dispositivo.
  4. El cliente GCM en el dispositivo recibe el mensaje y detecta que la aplicación cliente se ha desinstalado; Los detalles de detección dependen de la plataforma en la que se ejecuta la aplicación cliente.
  5. El cliente GCM en el dispositivo informa al servidor de conexión de GCM que la aplicación cliente se ha desinstalado.
  6. El servidor de conexión de GCM marca el token de registro para la eliminación.
  7. El servidor de aplicaciones envía un mensaje a GCM.
  8. El GCM devuelve un mensaje de error NotRegistered al servidor de aplicaciones.
  9. El servidor de aplicaciones debe eliminar el token de registro.

Tenga en cuenta que puede tardar un tiempo en que el token de registro se quite completamente de GCM. Por lo tanto, es posible que los mensajes enviados durante la etapa 7 anterior obtengan un ID de mensaje válido como respuesta, aunque el mensaje no se entregue a la aplicación cliente. Eventualmente, el token de registro se eliminará y el servidor recibirá un error NotRegistered, sin que se requiera ninguna acción adicional del servidor de aplicaciones.

Sin embargo, al parecer puede suceder que todavía obtiene la notificación para el ID de registro antiguo, como los usuarios de estado en otras preguntas:

Para este problema, existe una funcionalidad denominada "ID canónica":

ID canónica

Si un error en la aplicación cliente activa varios registros para el mismo dispositivo, puede ser difícil reconciliar el estado y la aplicación cliente puede terminar con mensajes duplicados.

La implementación de identificaciones canónicas puede ayudarle a recuperarse más fácilmente de estas situaciones. Un ID de registro canónico es el token de registro del último registro solicitado por la aplicación cliente. Éste es el ID que el servidor debe utilizar al enviar mensajes al dispositivo.

Si intenta enviar un mensaje con un token de registro antiguo, GCM procesará la solicitud como de costumbre, pero incluirá el ID canónico en el campo registration_id de la respuesta. Asegúrese de reemplazar el token de registro almacenado en su servidor con este ID canónico, ya que eventualmente el token de registro antiguo dejará de funcionar.

  • Error de GCM - googleCloudMessaging.register
  • Cómo puedo saber los dispositivos registrados en mi nube de aplicaciones de GCM (Lista de dispositivos)
  • ¿Es necesaria una cuenta de Google para GCM (Google Cloud Messaging)?
  • ID del remitente del GCM / número del proyecto
  • Descartar notificación actual en Acción pulsada
  • Validación de Token GCM
  • Anular el registro de un dispositivo de GCM mediante la identificación de registro en Android
  • ¿Podemos usar VectorDrawable o VectorXML como iconos para notificaciones push en android?
  • Cómo crear un diseño de notificaciones personalizadas en android?
  • El emulador de Android no recibe notificaciones push
  • Mostrar notificación de inserción múltiple en la barra de estado en android de Córdoba
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.