No recibe el mensaje de GCM mientras el dispositivo android está conectado a WIFI

Fondo

Estoy trabajando en una aplicación para Android que utiliza Google Cloud Messaging (nueva GCM-API, no C2DM obsoleto) para enviar mensajes de envío a sincronización a todos los dispositivos registrados.

Desde que usé la documentación oficial, mi implementación de cliente funciona casi exactamente igual que el ejemplo de Google. Como servidor, utilizo un simple script PHP ejecutándose en localhost cuya única tarea es enviar mensajes de envío a sincronización a GCM.

La cuestión

Todo funciona bien siempre y cuando mis dispositivos estén conectados a Internet a través de redes celulares como UMTS (el servidor envía notificaciones a GCM> GCM envía la notificación al dispositivo tan pronto como está en línea> la notificación se muestra en el dispositivo).

Pero cuando el dispositivo está conectado al WIFI, no se recibirán más mensajes GCM (aunque Google envía un "éxito" -replicar a mi servidor PHP). Debido a la siguiente respuesta ya he comprobado si mi router bloquea algunos puertos pero no lo hace.

Tuve el mismo problema de recibir mensajes push, a pesar de que el servidor GCM responde "Success", debido a la privacidad wifi. Cuando utilicé mi wifi de la compañía, no pude recibir el mensaje en móvil, puesto que fueron bloqueados puerto del servidor de GCM.

Curiosamente mi implementación ya ha estado trabajando con WIFI …
Por favor, hágamelo saber si tiene alguna idea de cómo podría resolver este problema. ¡Gracias por la ayuda!

Respuesta de Google al enviar mensajes de GCM desde PHP:

{ "multicast_id":4677038582377051331, "success":1, "failure":0, "canonical_ids":0, "results":[{"message_id":"0:1406364179145476%6ce83c64d7d6c7e2"}] } 

Hallazgo muy loco:

El problema se resolvió cuando llamé al script PHP que envía mis mensajes GCM desde el teléfono inteligente y ya que todo funciona bien. De todos modos gracias por ayudar. Todos los derechos reservados

INSINUACIÓN

¡Mientras tanto, este "nuevo" GCM-API está obsoleto! Estoy usando el último GCM-API (publicado en el verano de 2015) ahora. Desde la actualización nunca he enfrentado este problema de nuevo. La nueva API, incluyendo InstanceId-API es muy recomendable desde mi punto de vista, por lo que veo es un más estable que el viejo GCM.

Necesita abrir los puertos 5228 – 5230 para que GCM funcione correctamente.

Compruebe lo siguiente:

Note: If your organization has a firewall that restricts the traffic to or from the Internet, you'll need to configure it to allow connectivity with GCM. The ports to open are: 5228, 5229, and 5230. GCM typically only uses 5228, but it sometimes uses 5229 and 5230. GCM doesn't provide specific IPs. It changes IPs frequently. We recommend against using ACLs but if you must use them, take a broad approach such as the method suggested in this support link.

Si su empresa Wifi no permite estos puertos, entonces no podrá recibir GCM.

Espero eso ayude

Si el servicio funcionó para usted en algún momento de su dispositivo "identificación de registro" podría ser cambiado o simplemente mal.

Si nunca funcionó para usted y después de comprobar que el ID de registro de su dispositivo es el mismo que le está enviando a Google la carga útil de la solicitud, compruebe su Receptor de difusión y el servicio de intención de GCM que despierta su dispositivo porque si esta implementación falla Tu aplicación no recibirás ningún mensaje aunque la solicitud sea recibida por Google como estás señalando.

Versión de GCM obsoleta

¡Mientras tanto, este "nuevo" GCM-API está obsoleto! Estoy usando el último GCM-API (publicado en el verano de 2015) ahora. Desde la actualización nunca he enfrentado este problema de nuevo. La nueva API, incluyendo InstanceId-API es muy recomendable desde mi punto de vista, por lo que veo es un más estable que el GCM-API anterior.

  • Comprobación del estado del mensaje de GCM
  • GCM funciona bien en Android pero no funciona en iOS
  • ¿Está com.google.android.c2dm.intent.RECEIVE todavía en uso?
  • Analizar las notificaciones en android no funcionará
  • Registrar GCM de un proyecto de biblioteca
  • Migración de GCM 2.0 a API de InstanceID de GCM 3.0
  • Cómo obtener la aplicación del contexto
  • Administrar el ID de registro de GCM en el servidor
  • GCMIntentService + envío de mensajes a un manejador en un hilo muerto
  • Registro de GCM pero no recibe mensajes en pre 4.0.4. Dispositivos
  • Enviar notificación push GCM por java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.