Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Gabriele Baldoni
Email: gabriele.baldoni@gmail.com
Sitoweb: gabrielebaldoni.altervista.org
Altro:
facebook.com/gabriele.ba...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Cos’è il Google Cloud Messaging?
E’ un servizio ...
http://developer.android.com/google/gcm/c2dm.html
GCM vs C2DM
Abbiamo detto che il Google Cloud Messaging(GCM) è una migli...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Come funziona?
Il nostro server
Invia Invia
Invi...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Quali dispositivi sono compatibili?
Il GCM è com...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Come si interagisce con i server Google che gest...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Vediamo adesso alcuni concetti chiave che stanno...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Che tipi di messaggi posso mandare alle App
• Se...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Send-to-sync
• Leggeri
• Collassabil
i
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Messaggi con payload
• Contengono dati (max 4Kb)...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Come fare ad usare il GCM
Registrarsi sulla Goog...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Come fare ad usare il GCM
Salvarsi il Project Nu...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Come fare ad usare il GCM
Attivare dal menù API ...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Come fare ad usare il GCM
Dal menù credentials c...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Come fare ad usare il GCM
Adesso è possibile imp...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
Partiamo dall’implementazione del...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
Aggiungiamo al AndroidManifest.xm...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
… e aggiungiamo anche il Broadcas...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
… è bene controllare se il dispos...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
… se presenti si può procedere co...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
… implementiamo il BroadcastRecei...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
… e infine l’IntentService
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Client Android
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Server HTTP
Adesso tocca al server, qui vedremo ...
http://distriqt.com/post/1273
Google Cloud Messaging
Server HTTP
Questa semplice funzione PHP si occupa di mandare le rich...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Server HTTP
Vediamo quali sono i parametri che p...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Server HTTP
vediamo una tipica risposta dai serv...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Server HTTP
analizziamo nel dettaglio il campo r...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Argomenti ‘avanzati’
Analizziamo alcuni argoment...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Argomenti ‘avanzati’
Come funziona la de registr...
http://developer.android.com/google/gcm/index.html
Google Cloud Messaging
Question Time
Grazie per l’attenzione
Email: gabriele.baldoni@gmail.com
Sitoweb: gabrielebaldoni.altervista.org
Altro:
facebook.com/gabr...
Upcoming SlideShare
Loading in …5
×

Presentazione Google Cloud Messanging

615 views

Published on

Presentazione e prima implementazione del servizio Google Cloud Messaging, come mostrato durante l'Android AppFestival

Published in: Software
  • Be the first to comment

Presentazione Google Cloud Messanging

  1. 1. Gabriele Baldoni Email: gabriele.baldoni@gmail.com Sitoweb: gabrielebaldoni.altervista.org Altro: facebook.com/gabriele.baldoni twitter.com/_gabry
  2. 2. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Cos’è il Google Cloud Messaging? E’ un servizio gratuito di Google che consente agli sviluppatori Android di inviare messaggi alle App installate sui device degli utenti E’ una miglioria del “vecchio” Cloud-to-Device Messaging
  3. 3. http://developer.android.com/google/gcm/c2dm.html GCM vs C2DM Abbiamo detto che il Google Cloud Messaging(GCM) è una miglioria del C2DM, ma quali sono le differenze? • Messaggi multicast • Messaggi con payload • Supporto JSON • Nuove API • Migliore gestione della batteria • Più facile da usare
  4. 4. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Come funziona? Il nostro server Invia Invia Invia una richiesta al server GCM Il quale recapita Il messaggio Al device Android Quindi l’architettura del GCM è composta da 3 parti. 1)Il nostro server 2)Il server GCM 3) Il device Android
  5. 5. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Quali dispositivi sono compatibili? Il GCM è compatibile con tutti i dispositivi Android a partire dalla versione 2.2(Froyo) L’unica limitazione è la presenza nel device dei Google Play Services. Inoltre per le versioni precedenti la 3.0 (Honeycomb) è necessaria la presenza di un account Google configurato nel terminale. Da Android 4.0.4 (Icescream Sandwich) questa limitazione è stata rimossa.
  6. 6. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Come si interagisce con i server Google che gestiscono il GCM • XMPP (Jabber) • HTTP Mediante PlainText oppure JSON (tratteremo questa implementazione)
  7. 7. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Vediamo adesso alcuni concetti chiave che stanno alla base del GCM • Sender ID • Application ID • Registration ID • Sender Auth Token
  8. 8. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Che tipi di messaggi posso mandare alle App • Send-to-sync • Messaggi con payload
  9. 9. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Send-to-sync • Leggeri • Collassabil i
  10. 10. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Messaggi con payload • Contengono dati (max 4Kb) • Non collasabili
  11. 11. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Come fare ad usare il GCM Registrarsi sulla Google Developer Console (https://console.developers.google.com), creare un nuovo progetto
  12. 12. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Come fare ad usare il GCM Salvarsi il Project Number, in quanto sarà il Sender ID da usare durante la registrazione dell’App
  13. 13. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Come fare ad usare il GCM Attivare dal menù API & auth il Google Cloud Messaging for Android
  14. 14. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Come fare ad usare il GCM Dal menù credentials creare una nuova Public Key API Access di tipo Server Key Questa sarà la nostra Sender Auth Token
  15. 15. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Come fare ad usare il GCM Adesso è possibile implementare il Client e il Server Vedremo come implementare la registrazione del Client E una semplicissima funzione PHP che funge da server
  16. 16. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android Partiamo dall’implementazione del client Dobbiamo essere sicuri di aver installato i Google Play Services nel nostro ambiente di sviluppo
  17. 17. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android Aggiungiamo al AndroidManifest.xml i permessi necessari per utilizzare il GCM
  18. 18. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android … e aggiungiamo anche il Broadcast Receiver e l’IntentService
  19. 19. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android … è bene controllare se il dispositivo ha i Google Play Services installati
  20. 20. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android … se presenti si può procedere con la registrazione
  21. 21. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android … implementiamo il BroadcastReceiver
  22. 22. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android … e infine l’IntentService
  23. 23. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Client Android
  24. 24. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Server HTTP Adesso tocca al server, qui vedremo una implementazione (brutta e probabilmente piena di bug) che ci mostra come comunicare semplicemente usando il PHP e un JSON con i server Google che gestiscono il GCM
  25. 25. http://distriqt.com/post/1273 Google Cloud Messaging Server HTTP Questa semplice funzione PHP si occupa di mandare le richieste ai server GCM
  26. 26. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Server HTTP Vediamo quali sono i parametri che possiamo passare ai server GCM • registration_ids • notification_key • collapse_key • data • delay_while_idl e • time_to_live • dry_run
  27. 27. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Server HTTP vediamo una tipica risposta dai server GCM e analizziamola • multicast_id • success • failure • canonical_ids • results
  28. 28. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Server HTTP analizziamo nel dettaglio il campo results • message_id • error • registration_id
  29. 29. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Argomenti ‘avanzati’ Analizziamo alcuni argomenti utili per l’utilizzo del GCM Se la registrazione non va a buon fine, deve essere ripetuta aspettando dopo ogni tentativo un tempo doppio rispetto a quello di attesa del precedente (Exponential Back-Off) La de registrazione di un registration_id deve essere fatta solo in casi di aggiornamento dell’App o disinstallazione, poiché non vi è alcuna garanzia che i server GCM restituiscano un registration_id diverso dal precedente
  30. 30. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Argomenti ‘avanzati’ Come funziona la de registrazione • L’utente disinstalla l’App • Il nostro server manda un messaggio all’App • Il GCM manda il messaggio al device • Il Client GCM del device controlla se c’è un BroadcastReceiver adatto per il messaggio e non lo trova • Il Client GCM del device informa i server GCM che l’App è stata disinstallata • Il GCM contrassegna quel registration_id per la cancellazione • Il nostro server manda un nuovo messaggio • Il server GCM ci ritorna in error un NotRegistered • Il nostro server DEVE cancellare quel registration_id
  31. 31. http://developer.android.com/google/gcm/index.html Google Cloud Messaging Question Time
  32. 32. Grazie per l’attenzione Email: gabriele.baldoni@gmail.com Sitoweb: gabrielebaldoni.altervista.org Altro: facebook.com/gabriele.baldoni twitter.com/_gabry Gabriele Baldoni

×