2012-07-10 55 views
8

Utilizo el ejemplo proporcionado por goole y construí una aplicación del lado del cliente para obtener notificaciones y un servidor, ambas aplicaciones (código) son las proporcionadas por google.android GCM no funciona

Ejecuto la aplicación en el lado del cliente y obtengo el registration_id. una gran cadena, en este formato que se encuentra a continuación:

APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA.

Esto me demuestra que la aplicación cliente funciona. Ahora el servidor (java, google ejemplo):

public static void main(String[] args) { 

     Sender sender = new Sender("AIzaSXXXXXXXXXX_XXXXXXXXXXXXXXXrQOnoGZw");  
     Message message = new Message.Builder() 
     .collapseKey("1") 
     .timeToLive(3) 
     .delayWhileIdle(true) 
     .addData("message", 
      "this text will be seen in notification bar!!") 
     .build(); 

     try { 
      Result result = sender.send(message, "APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA", 3); 
      System.out.println(result.toString()); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
} 

Este es el servidor. Cuando ejecuto el servidor obtuve como resultado algo como esto: [messageId = 0: 1341907115903155% 921c249a00000031] pero no hay ningún mensaje en el cliente y no entiendo por qué. ¿Cuál es el significado de la respuesta que recibí del servidor? ¿Es la respuesta de éxito?

Necesito ayuda para entender lo que está mal?

Respuesta

4

De acuerdo con la GCM Documentation:

Cuando un servidor de mensajes tercera partes un mensaje a GCM y recibe un identificador de mensaje de nuevo, esto no significa que el mensaje ya fue entregado al dispositivo. Por el contrario, significa que fue aceptado para la entrega. Lo que sucede con el mensaje después de ser aceptado depende de muchos factores.

En el mejor de los casos, si el dispositivo está conectado a GCM, la pantalla está encendida y no hay restricciones de aceleración (ver Estrangulamiento), el mensaje se entregará de inmediato.

+0

así que cuando vamos a recibir tesis mensajes en el dispositivo – Developer

+0

@GauravPandey - Eso es muy dependiente del servicio de GCM Si va y revisa la Documentación de GCM, dicen que los Mensajes serán entregados lo antes posible por el Servidor. – bhuvin

6

Por favor revise su comentario

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

Nota: Si su organización tiene un servidor de seguridad que restringe el tráfico hacia o desde Internet, necesitará configurarlo para permitir la conectividad con GCM. Los puertos para abrir son: 5228, 5229 y 5230. GCM generalmente solo usa 5228, pero a veces usa 5229 y 5230. GCM no proporciona direcciones IP específicas. Cambia las direcciones IP con frecuencia.

0

Si su mensaje de notificación de retraso o problema de mensaje en GCM prueba esta solución.

Sé que esto no es una solución adecuada, pero es WORKS instalar esta aplicación es realmente funciona para mí HERE