2012-07-10 11 views
8

Uso l'esempio fornito da goole e ho creato un'applicazione lato client per ottenere notifiche e un lato server, entrambe le applicazioni (codice) sono quelle fornite da google.Android GCM non funziona

Eseguo l'applicazione sul lato client e ottengo il registration_id. una stringa enorme, in questo formato che è di seguito:

APA91bEgguwt98xLbivrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLxDalNoEktCSVbOkT0-uFH2FaRnfpkRME2tzuvr0BycMNEhX_Ix1PV_XXXXXXXXXXXXXXXXXXXXXN5hcseY_wA.

Ciò dimostra che l'applicazione client funziona. Ora il server (java, esempio google):

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(); 
     } 
} 

Questo è il server. Quando eseguo il server, ho ottenuto qualcosa del genere: [messageId = 0: 1341907115903155% 921c249a00000031] ma nessun messaggio sul client e non capisco perché. Qual è il significato della risposta che ho ricevuto dal server? È la risposta di successo?

Ho bisogno di aiuto per capire cosa c'è che non va?

risposta

4

Secondo il GCM Documentation:

Quando un server di messaggi 3rd-party un messaggio a GCM e riceve un ID di messaggio indietro, ciò non significa che il messaggio è stato già consegnato al dispositivo. Piuttosto, significa che è stato accettato per la consegna. Ciò che accade al messaggio dopo che è stato accettato dipende da molti fattori.

Nel migliore dei casi, se il dispositivo è connesso a GCM, lo schermo è acceso e non ci sono limitazioni di limitazione (vedi Throttling), il messaggio verrà consegnato immediatamente.

+0

così quando riceveremo tesi messaggi sul dispositivo – Developer

+0

@GauravPandey - Questo è molto dipendenti dal servizio GCM , Se vai e controlla la Documentazione GCM, ti dicono che i Messaggi saranno consegnati il ​​più presto possibile dal Server. – bhuvin

6

Si prega di rivedere il loro commento

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

Nota: Se l'organizzazione ha un firewall che limita il traffico da e verso Internet, sarà necessario configurarlo per consentire la connettività con GCM. Le porte da aprire sono: 5228, 5229 e 5230. GCM in genere utilizza solo 5228, ma a volte utilizza 5229 e 5230. GCM non fornisce IP specifici. Cambia frequentemente gli IP.

0

Se la notifica di ritardo di fronte o il problema del messaggio in GCM, quindi provare questa soluzione.

So che questo non è una soluzione adeguata ma è OPERE Installa questa applicazione è davvero lavorare per me HERE