SlideShare uma empresa Scribd logo
1 de 29
GCM - Google Cloud Messaging




         Ricardo R. Lecheta
Ricardo R. Lecheta
Agenda
 GCM
 Google Console
 Gerando as chaves de acesso
 Projeto de exemplo: Android
 Projeto de exemplo: Servidor




                   MobileConf @2013 - Ricardo R. Lecheta
GCM
 Serviço disponibilizado pelo Google para enviar mensagens de
push para o aplicativo Android.




                 Canal de comunicação
                 Wi-Fi / 3G


                  MobileConf @2013 - Ricardo R. Lecheta
GCM - Ativação
 Registration ID: é o identificador deste dispositivo.


                              1) Faz registro


                             2) Registration ID


                            Canal de comunicação




                   MobileConf @2013 - Ricardo R. Lecheta
GCM – Registration ID
 Registration ID: precisa ser armazenado no servidor.
 Com ele o servidor consegue enviar mensagens para este dispositivo

                             1) Faz registro


                            2) Registration ID


            3) Enviar reg_id para o server



                  MobileConf @2013 - Ricardo R. Lecheta
GCM
 Servidor do GCM apenas recebe a mensagem, e entrega ao device.


                                2) Entrega mensagem
 1) Envia mensagem




                                 Canal de comunicação



                 MobileConf @2013 - Ricardo R. Lecheta
Demo
 Demo




         MobileConf @2013 - Ricardo R. Lecheta
Google APIs Console
 Para ativar o serviço do GCM, basta criar um projeto no console.
 https://code.google.com/apis/console




                  MobileConf @2013 - Ricardo R. Lecheta
Project Number (Sender ID)
 Copiar o Project Number. Utilizado no aplicativo Android para
receber as mensagens.
 https://code.google.com/apis/console//#project:686844393032




                     MobileConf @2013 - Ricardo R. Lecheta
Ativar o serviço do GCM
 Menu > Services.




                 MobileConf @2013 - Ricardo R. Lecheta
Criar uma chave
 Menu > API Access.
 Clicar no botão Create new Server key




                  MobileConf @2013 - Ricardo R. Lecheta
Criar uma chave
 Ao criar a chave, deixe o campo vazio.
 Apenas clique em Create.




                   MobileConf @2013 - Ricardo R. Lecheta
Chave “API Key” criada
 Copie a API Key. Ela é utilizada no servidor para enviar as mensagens.




                   MobileConf @2013 - Ricardo R. Lecheta
Baixando a biblioteca ‘.jar’
 Instalando as Bibliotecas.
 SDK Manager: Extras > Google Cloud Messaging for Android Library




                    MobileConf @2013 - Ricardo R. Lecheta
Projeto Android
 C:android-sdk-windowsextrasgooglegcmsamplesgcm-demo-clientlibsgcm.jar.
 Copie o gcm.jar para a pasta /libs do projeto




                       MobileConf @2013 - Ricardo R. Lecheta
AndroidManifest.xml
 Android 2.2 (API Level 8) ou superior




                       MobileConf @2013 - Ricardo R. Lecheta
AndroidManifest.xml
 Adicionar as permissões
 Cuidado, o nome da permissão é: nome do pacote + permissão.




                     MobileConf @2013 - Ricardo R. Lecheta
AndroidManifest.xml
 Configurar o GCMBroadcastReceiver que vai receber a mensagem.
 Configurar o GCMIntentService que vai processar a mensagem.




                     MobileConf @2013 - Ricardo R. Lecheta
Registro no GCM
 Classe GCMRegistrar está no gcm.jar




                      MobileConf @2013 - Ricardo R. Lecheta
GCMIntentService
 Deve herdar de GCMBaseIntentService
 Precisa passar no seu construtor o Project Number (obtido no Google APIs console)




                      MobileConf @2013 - Ricardo R. Lecheta
Constants
 Project Number (obtido no Google APIs console)




                      MobileConf @2013 - Ricardo R. Lecheta
Demo
 Registro no GCM.




                     MobileConf @2013 - Ricardo R. Lecheta
Servidor: Enviando uma mensagem
 POST
 https://android.googleapis.com/gcm/send




                     MobileConf @2013 - Ricardo R. Lecheta
Servidor: Enviando uma mensagem
 Como enviar uma mensagem do servidor para o device
 Utiliza as classes Sender e Message do gcm-server.jar




                       MobileConf @2013 - Ricardo R. Lecheta
Recebendo mensagem
 Demo




           MobileConf @2013 - Ricardo R. Lecheta
Considerações finais
 O servidor do Google pode enviar periodicamente a chave de registro de um device,
deixe o código preparado para atualizar esta chave.
 Cada mensagem deve conter no máximo 4096 bytes
 Uma mensagem fica armazenada no servidor do GCM por 4 semanas
 Até 100 mensagens podem ser enfileiradas, depois as mensagens antigas são
apagadas.
 Se não for necessário enfileirar as mensagens, ou seja entregar todas as mensagens,
utilize o parâmetro collapse_key para agrupá-las. Mensagens com o mesmo
collapse_key serão descartadas, de forma que sempre a última será entregue.




                       MobileConf @2013 - Ricardo R. Lecheta
Exemplo: gcm-demo-client
 Passo a passo para criar o projeto de exemplo.
 Wizard: > File New > Android Sample Project > gcm-demo-client.
 Na classe CommonUtilities, insera o valor da constante SENDER_ID, que é o Project
Number do console de administração;
 Para não utilizar o servidor, comente o método post() da classe ServerUtilities;
 Comente a verificação na DemoActivity: checkNotNull(SERVER_URL, "SERVER_URL");
 Na DemoActivity, altere o context this para getApplicationContext();
 Na classe GCMIntentService, customize o método onMessage() par ler os dados
conforme sua necessidade;
 Envie uma mensagem pelo servidor (slide 23).




                       MobileConf @2013 - Ricardo R. Lecheta
Obrigado, dúvidas ?

                               Código de Desconto

                               ANDROID3

                               20 %




 facebook.com/ricardolecheta

Mais conteúdo relacionado

Semelhante a MobileConf 2013 GCM

Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Androidjgbirk
 
Equipe - Implantação de CRM
Equipe - Implantação de CRMEquipe - Implantação de CRM
Equipe - Implantação de CRMMarco Coghi
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryValdir Junior
 
IMPLANTAÇÃO DE UM CRM
IMPLANTAÇÃO DE UM CRMIMPLANTAÇÃO DE UM CRM
IMPLANTAÇÃO DE UM CRMMarco Coghi
 
IBM Bluemix - The Digital Innovation Platform
IBM Bluemix - The Digital Innovation PlatformIBM Bluemix - The Digital Innovation Platform
IBM Bluemix - The Digital Innovation PlatformBruno Rodrigues Alcantara
 
Serverless no Google Cloud
Serverless no Google CloudServerless no Google Cloud
Serverless no Google CloudLucas Arruda
 
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitTwelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitAmazon Web Services
 
Acelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOpsAcelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOpsFelipe Freire
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwarePaulo Lacerda
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasAmazon Web Services LATAM
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TVAécio Costa
 
Primeiros passos para o novo desenvolvedor android
Primeiros passos para o novo desenvolvedor androidPrimeiros passos para o novo desenvolvedor android
Primeiros passos para o novo desenvolvedor androidMessias Batista
 
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...Bruno Muniz
 
Visão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareVisão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareCloudflare
 

Semelhante a MobileConf 2013 GCM (20)

Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
Equipe - Implantação de CRM
Equipe - Implantação de CRMEquipe - Implantação de CRM
Equipe - Implantação de CRM
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerry
 
AGILI
AGILIAGILI
AGILI
 
IMPLANTAÇÃO DE UM CRM
IMPLANTAÇÃO DE UM CRMIMPLANTAÇÃO DE UM CRM
IMPLANTAÇÃO DE UM CRM
 
IBM Bluemix - The Digital Innovation Platform
IBM Bluemix - The Digital Innovation PlatformIBM Bluemix - The Digital Innovation Platform
IBM Bluemix - The Digital Innovation Platform
 
Serverless no Google Cloud
Serverless no Google CloudServerless no Google Cloud
Serverless no Google Cloud
 
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitTwelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
 
Acelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOpsAcelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOps
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernas
 
Autc@r Mobile
Autc@r MobileAutc@r Mobile
Autc@r Mobile
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TV
 
Android
AndroidAndroid
Android
 
Project Time
Project TimeProject Time
Project Time
 
EASYHELP
EASYHELPEASYHELP
EASYHELP
 
Primeiros passos para o novo desenvolvedor android
Primeiros passos para o novo desenvolvedor androidPrimeiros passos para o novo desenvolvedor android
Primeiros passos para o novo desenvolvedor android
 
Aula maps 23_2
Aula maps 23_2Aula maps 23_2
Aula maps 23_2
 
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
Forum Mobile+ - MEAPs Como selecionar uma plataforma mobile de aplicações ent...
 
Visão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareVisão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da Cloudflare
 

MobileConf 2013 GCM

  • 1. GCM - Google Cloud Messaging Ricardo R. Lecheta
  • 3. Agenda  GCM  Google Console  Gerando as chaves de acesso  Projeto de exemplo: Android  Projeto de exemplo: Servidor MobileConf @2013 - Ricardo R. Lecheta
  • 4. GCM  Serviço disponibilizado pelo Google para enviar mensagens de push para o aplicativo Android. Canal de comunicação Wi-Fi / 3G MobileConf @2013 - Ricardo R. Lecheta
  • 5. GCM - Ativação  Registration ID: é o identificador deste dispositivo. 1) Faz registro 2) Registration ID Canal de comunicação MobileConf @2013 - Ricardo R. Lecheta
  • 6. GCM – Registration ID  Registration ID: precisa ser armazenado no servidor.  Com ele o servidor consegue enviar mensagens para este dispositivo 1) Faz registro 2) Registration ID 3) Enviar reg_id para o server MobileConf @2013 - Ricardo R. Lecheta
  • 7. GCM  Servidor do GCM apenas recebe a mensagem, e entrega ao device. 2) Entrega mensagem 1) Envia mensagem Canal de comunicação MobileConf @2013 - Ricardo R. Lecheta
  • 8. Demo  Demo MobileConf @2013 - Ricardo R. Lecheta
  • 9. Google APIs Console  Para ativar o serviço do GCM, basta criar um projeto no console.  https://code.google.com/apis/console MobileConf @2013 - Ricardo R. Lecheta
  • 10. Project Number (Sender ID)  Copiar o Project Number. Utilizado no aplicativo Android para receber as mensagens.  https://code.google.com/apis/console//#project:686844393032 MobileConf @2013 - Ricardo R. Lecheta
  • 11. Ativar o serviço do GCM  Menu > Services. MobileConf @2013 - Ricardo R. Lecheta
  • 12. Criar uma chave  Menu > API Access.  Clicar no botão Create new Server key MobileConf @2013 - Ricardo R. Lecheta
  • 13. Criar uma chave  Ao criar a chave, deixe o campo vazio.  Apenas clique em Create. MobileConf @2013 - Ricardo R. Lecheta
  • 14. Chave “API Key” criada  Copie a API Key. Ela é utilizada no servidor para enviar as mensagens. MobileConf @2013 - Ricardo R. Lecheta
  • 15. Baixando a biblioteca ‘.jar’  Instalando as Bibliotecas.  SDK Manager: Extras > Google Cloud Messaging for Android Library MobileConf @2013 - Ricardo R. Lecheta
  • 16. Projeto Android  C:android-sdk-windowsextrasgooglegcmsamplesgcm-demo-clientlibsgcm.jar.  Copie o gcm.jar para a pasta /libs do projeto MobileConf @2013 - Ricardo R. Lecheta
  • 17. AndroidManifest.xml  Android 2.2 (API Level 8) ou superior MobileConf @2013 - Ricardo R. Lecheta
  • 18. AndroidManifest.xml  Adicionar as permissões  Cuidado, o nome da permissão é: nome do pacote + permissão. MobileConf @2013 - Ricardo R. Lecheta
  • 19. AndroidManifest.xml  Configurar o GCMBroadcastReceiver que vai receber a mensagem.  Configurar o GCMIntentService que vai processar a mensagem. MobileConf @2013 - Ricardo R. Lecheta
  • 20. Registro no GCM  Classe GCMRegistrar está no gcm.jar MobileConf @2013 - Ricardo R. Lecheta
  • 21. GCMIntentService  Deve herdar de GCMBaseIntentService  Precisa passar no seu construtor o Project Number (obtido no Google APIs console) MobileConf @2013 - Ricardo R. Lecheta
  • 22. Constants  Project Number (obtido no Google APIs console) MobileConf @2013 - Ricardo R. Lecheta
  • 23. Demo  Registro no GCM. MobileConf @2013 - Ricardo R. Lecheta
  • 24. Servidor: Enviando uma mensagem  POST  https://android.googleapis.com/gcm/send MobileConf @2013 - Ricardo R. Lecheta
  • 25. Servidor: Enviando uma mensagem  Como enviar uma mensagem do servidor para o device  Utiliza as classes Sender e Message do gcm-server.jar MobileConf @2013 - Ricardo R. Lecheta
  • 26. Recebendo mensagem  Demo MobileConf @2013 - Ricardo R. Lecheta
  • 27. Considerações finais  O servidor do Google pode enviar periodicamente a chave de registro de um device, deixe o código preparado para atualizar esta chave.  Cada mensagem deve conter no máximo 4096 bytes  Uma mensagem fica armazenada no servidor do GCM por 4 semanas  Até 100 mensagens podem ser enfileiradas, depois as mensagens antigas são apagadas.  Se não for necessário enfileirar as mensagens, ou seja entregar todas as mensagens, utilize o parâmetro collapse_key para agrupá-las. Mensagens com o mesmo collapse_key serão descartadas, de forma que sempre a última será entregue. MobileConf @2013 - Ricardo R. Lecheta
  • 28. Exemplo: gcm-demo-client  Passo a passo para criar o projeto de exemplo.  Wizard: > File New > Android Sample Project > gcm-demo-client.  Na classe CommonUtilities, insera o valor da constante SENDER_ID, que é o Project Number do console de administração;  Para não utilizar o servidor, comente o método post() da classe ServerUtilities;  Comente a verificação na DemoActivity: checkNotNull(SERVER_URL, "SERVER_URL");  Na DemoActivity, altere o context this para getApplicationContext();  Na classe GCMIntentService, customize o método onMessage() par ler os dados conforme sua necessidade;  Envie uma mensagem pelo servidor (slide 23). MobileConf @2013 - Ricardo R. Lecheta
  • 29. Obrigado, dúvidas ? Código de Desconto ANDROID3 20 % facebook.com/ricardolecheta