SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
C2DM
    Cloud 2 Device Message
                      Neto Marin
                      Globalcode




@netomarin
http://blog.netomarin.com
Neto Marin
•   Trabalhando com mobilidade
    desde 2006 e fuçando com
    Android desde 2008.

•   Fundador da lista
    AndroidBrasil-dev com mais
    de mil participantes.

•   Coordenador das trilhas de
    mobilidade do TDC.

•   Autor da Academia Android
    da Globalcode.
O que é o C2DM ?
•   É um serviço que ajuda os desenvolvedores
    enviar dados dos seus servidor para os
    dispositivos desejados.
•   O serviço é uma ferramenta leve e que pode
    ser utilizado para informar a aplicação móvel
    para contactar o servidor, receber uma
    atualização ou dados do usuário.
•   Esse serviço trata todos os aspectos da fila das
    mensagens e a entrega aos dispositivos finais.
C2DM
passo a passo
   Habilitar C2DM

   Tratar o registro

  Enviar mensagem
      (servidor)

  Tratar mensagem
Registrar o device
•   Na primeira vez que a aplicação precisar usar o
    C2DM, deve ser disparada uma Intent de registro
    para com.google.android.c2dm.intent.REGISTER
    que deve conter:
    •   Sender ID: conta autorizada a enviar
        mensagens para a aplicação. Normalmente é
        o endereço de e-mail configurado pelo
        desenvolvedor.
    •   Application ID: Id da aplicação que deseja
        receber as mensagens.
Antes de
    começar...
 Para poder usar o serviço é
primeiro preciso se registrar:

https://developers.google.com/
     android/c2dm/signup
Configurando Manifest
• Registrar permissão de registrar e receber
  mensagens:
  •   com.google.android.c2dm.permission.RECEIVE


• Permissão de Internet (!!!)
• Prevenir que outras aplicações leiam as
  mensagens da sua app:
  •   applicationPackage + “.permission.C2D_MESSAGE


• Receivers para a Intent de Receive
  adicionada acima.
Código Registro C2DM

Intent registrationIntent = new Intent(”
    com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app",
        PendingIntent.getBroadcast(this, 0,
                new Intent(), 0));
registrationIntent.putExtra("sender",
        emailOfSender);
startService(registrationIntent);
Retorno do Registro
•   É preciso definir um receiver para tratar o retorno do
    registro, para a Intent
    com.google.android.c2dm.intent.REGISTRATION.
•   Caso haja algum erro, um dos códigos será retornado:
    •   SERVICE_NOT_AVAILABLE
    •   ACCOUNT_MISSING
    •   AUTHENTICATION_FAILED
    •   TOO_MANY_REGISTRATIONS
    •   INVALID_SENDER
    •   PHONE_REGISTRATION_ERROR
Removendo Registro

Intent unregIntent = new Intent(”
    com.google.android.c2dm.intent.UNREGISTER");

unregIntent.putExtra("app",
        PendingIntent.getBroadcast(this, 0,
                new Intent(), 0));
startService(unregIntent);
Servidor de Push
•   Utilização de um servidor próprio.
•   Deve armazenar ou receber o Registration ID
    do device para realizar o envio.
•   Irá chamar o servidor do Google, e esse
    terminará o envio da mensagem.
•   Instagram publicou o próprio servidor, feito em
    Noje.js
    •   https://github.com/Instagram/node2dm
Autenticação no
           Google
• O servidor também precisa se autenticar
  com o Google, usando a conta fornecida no
  cadastro.
• Via linha de comando:
  curl https://www.google.com/accounts/ClientLogin -d

      Email=your_user -d "Passwd=your_password"

      -d accountType=GOOGLE

      -d source=Google-cURL-Example -d service=ac2dm
Envio de Mensagem
•   A mensagem que se deseja enviar deve ser
    repassada ao Google, que se encarregará da
    questão de filas e envios.
•   Via linha de comando:
    curl --header

       "Authorization: GoogleLogin auth=AUTHENTICATION_ID"

       "https://android.apis.google.com/c2dm/send"

       -d registration_id=your_registration

      -d "data.payload=MENSAGEM" -d collapse_key=0
Recebendo Mensagem

• Após registrar a Intent de recebimento,
  com.google.android.c2dm.intent.RECEI
  VE, implementar o receiver.
• O dado enviado estará na String extra
  payload.
Referências

• Android Cloud to Device Messaging
     Framework
    • https://developers.google.com/android/c2dm/
•    Android Cloud to Device Messaging
     (C2DM) - Tutorial
    • http://www.vogella.com/articles/AndroidCloudToDeviceMessaging/
       article.html
Obrigado!
@netomarin

Contenu connexe

Similaire à Cloud 2 Device Message Framework - AndroidRec

CakePHP - Social Login com Linkedin
CakePHP - Social Login com LinkedinCakePHP - Social Login com Linkedin
CakePHP - Social Login com LinkedinLuís Fred
 
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11   desenvolvimento de um app ao vivo - pablo morettiAudit¢rio 11   desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo morettifsolari
 
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
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)Ricardo Longa
 
Outsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágilOutsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágil.add
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Amazon Web Services LATAM
 
CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...Amazon Web Services
 
ServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG BrasilServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG BrasilWillians Medeiros
 
Android Chat Implementation
Android Chat ImplementationAndroid Chat Implementation
Android Chat ImplementationDenis Vieira
 
Goldark@w3c - Web's got Talent 2014
Goldark@w3c - Web's got Talent 2014Goldark@w3c - Web's got Talent 2014
Goldark@w3c - Web's got Talent 2014Leonardo Rossetti
 
Serverless no Google Cloud
Serverless no Google CloudServerless no Google Cloud
Serverless no Google CloudLucas Arruda
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoHanderson Frota
 
Apresentação sie ir-2014
Apresentação sie ir-2014Apresentação sie ir-2014
Apresentação sie ir-2014Renan Moreira
 
Do 0 a estar online no Google App Engine
Do 0 a estar online no Google App EngineDo 0 a estar online no Google App Engine
Do 0 a estar online no Google App EnginePriscila Mayumi
 

Similaire à Cloud 2 Device Message Framework - AndroidRec (20)

Petic GT4 IR UFS
Petic GT4 IR UFSPetic GT4 IR UFS
Petic GT4 IR UFS
 
CakePHP - Social Login com Linkedin
CakePHP - Social Login com LinkedinCakePHP - Social Login com Linkedin
CakePHP - Social Login com Linkedin
 
Startup - Sistema de Cobrança
Startup - Sistema de CobrançaStartup - Sistema de Cobrança
Startup - Sistema de Cobrança
 
Kerberos
KerberosKerberos
Kerberos
 
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11   desenvolvimento de um app ao vivo - pablo morettiAudit¢rio 11   desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo moretti
 
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
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
Outsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágilOutsystems - Desenvolvimento ágil
Outsystems - Desenvolvimento ágil
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
 
CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...
 
ServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG BrasilServiceNow Dicas e Truques 8o. SNUG Brasil
ServiceNow Dicas e Truques 8o. SNUG Brasil
 
Autc@r Mobile
Autc@r MobileAutc@r Mobile
Autc@r Mobile
 
Android: Intent, Broadcast Receiver e Notifications
Android: Intent, Broadcast Receiver e NotificationsAndroid: Intent, Broadcast Receiver e Notifications
Android: Intent, Broadcast Receiver e Notifications
 
Android Chat Implementation
Android Chat ImplementationAndroid Chat Implementation
Android Chat Implementation
 
Goldark@w3c - Web's got Talent 2014
Goldark@w3c - Web's got Talent 2014Goldark@w3c - Web's got Talent 2014
Goldark@w3c - Web's got Talent 2014
 
Serverless no Google Cloud
Serverless no Google CloudServerless no Google Cloud
Serverless no Google Cloud
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
 
Apresentação sie ir-2014
Apresentação sie ir-2014Apresentação sie ir-2014
Apresentação sie ir-2014
 
Do 0 a estar online no Google App Engine
Do 0 a estar online no Google App EngineDo 0 a estar online no Google App Engine
Do 0 a estar online no Google App Engine
 
Aula 7 infraestrutura - 11022012
Aula 7   infraestrutura - 11022012Aula 7   infraestrutura - 11022012
Aula 7 infraestrutura - 11022012
 

Plus de Antonio Marin Neto

Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Antonio Marin Neto
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidAntonio Marin Neto
 
Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?Antonio Marin Neto
 
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.Antonio Marin Neto
 
Desenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCDesenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCAntonio Marin Neto
 
Educação e certificação na plataforma Java
Educação e certificação na plataforma JavaEducação e certificação na plataforma Java
Educação e certificação na plataforma JavaAntonio Marin Neto
 
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...Antonio Marin Neto
 
A nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e CelularesA nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e CelularesAntonio Marin Neto
 
Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.Antonio Marin Neto
 
Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009Antonio Marin Neto
 
Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009Antonio Marin Neto
 

Plus de Antonio Marin Neto (17)

Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!Criando jogos com Java ME: Diversão e retorno financeiro!
Criando jogos com Java ME: Diversão e retorno financeiro!
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações Android
 
Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?Plataformas Móveis: Qual e como escolher?
Plataformas Móveis: Qual e como escolher?
 
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
TDC 2011 - Trilha Android - Integrando suas aplicações com as redes sociais.
 
Desenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USCDesenvolvimento de Software para dispositivos moveis - USC
Desenvolvimento de Software para dispositivos moveis - USC
 
Educação e certificação na plataforma Java
Educação e certificação na plataforma JavaEducação e certificação na plataforma Java
Educação e certificação na plataforma Java
 
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
Não deixe seu Android Falando Sozinho! Conecte sua aplicação usando Bluetooth...
 
A nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e CelularesA nova era dos games: Redes Sociais e Celulares
A nova era dos games: Redes Sociais e Celulares
 
Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.Conhecendo e comparando as plataformas de desenvolvimento móvel.
Conhecendo e comparando as plataformas de desenvolvimento móvel.
 
Conhecendo android
Conhecendo androidConhecendo android
Conhecendo android
 
Mc71 Desenvolvimento Movel
Mc71 Desenvolvimento MovelMc71 Desenvolvimento Movel
Mc71 Desenvolvimento Movel
 
Cosmo - Quick Devoxx09
Cosmo - Quick Devoxx09Cosmo - Quick Devoxx09
Cosmo - Quick Devoxx09
 
Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009Redes Sociais Dispositivos Moveis Lecotec2009
Redes Sociais Dispositivos Moveis Lecotec2009
 
Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009Java Me Touchscreen Just Java2009
Java Me Touchscreen Just Java2009
 
Jme Games
Jme GamesJme Games
Jme Games
 
WRT Widgets - M3DD LA
WRT Widgets - M3DD LAWRT Widgets - M3DD LA
WRT Widgets - M3DD LA
 
LWUIT - Just Java2008
LWUIT - Just Java2008LWUIT - Just Java2008
LWUIT - Just Java2008
 

Cloud 2 Device Message Framework - AndroidRec

  • 1. C2DM Cloud 2 Device Message Neto Marin Globalcode @netomarin http://blog.netomarin.com
  • 2. Neto Marin • Trabalhando com mobilidade desde 2006 e fuçando com Android desde 2008. • Fundador da lista AndroidBrasil-dev com mais de mil participantes. • Coordenador das trilhas de mobilidade do TDC. • Autor da Academia Android da Globalcode.
  • 3. O que é o C2DM ? • É um serviço que ajuda os desenvolvedores enviar dados dos seus servidor para os dispositivos desejados. • O serviço é uma ferramenta leve e que pode ser utilizado para informar a aplicação móvel para contactar o servidor, receber uma atualização ou dados do usuário. • Esse serviço trata todos os aspectos da fila das mensagens e a entrega aos dispositivos finais.
  • 4. C2DM passo a passo Habilitar C2DM Tratar o registro Enviar mensagem (servidor) Tratar mensagem
  • 5. Registrar o device • Na primeira vez que a aplicação precisar usar o C2DM, deve ser disparada uma Intent de registro para com.google.android.c2dm.intent.REGISTER que deve conter: • Sender ID: conta autorizada a enviar mensagens para a aplicação. Normalmente é o endereço de e-mail configurado pelo desenvolvedor. • Application ID: Id da aplicação que deseja receber as mensagens.
  • 6. Antes de começar... Para poder usar o serviço é primeiro preciso se registrar: https://developers.google.com/ android/c2dm/signup
  • 7. Configurando Manifest • Registrar permissão de registrar e receber mensagens: • com.google.android.c2dm.permission.RECEIVE • Permissão de Internet (!!!) • Prevenir que outras aplicações leiam as mensagens da sua app: • applicationPackage + “.permission.C2D_MESSAGE • Receivers para a Intent de Receive adicionada acima.
  • 8. Código Registro C2DM Intent registrationIntent = new Intent(” com.google.android.c2dm.intent.REGISTER"); registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); registrationIntent.putExtra("sender", emailOfSender); startService(registrationIntent);
  • 9. Retorno do Registro • É preciso definir um receiver para tratar o retorno do registro, para a Intent com.google.android.c2dm.intent.REGISTRATION. • Caso haja algum erro, um dos códigos será retornado: • SERVICE_NOT_AVAILABLE • ACCOUNT_MISSING • AUTHENTICATION_FAILED • TOO_MANY_REGISTRATIONS • INVALID_SENDER • PHONE_REGISTRATION_ERROR
  • 10. Removendo Registro Intent unregIntent = new Intent(” com.google.android.c2dm.intent.UNREGISTER"); unregIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); startService(unregIntent);
  • 11. Servidor de Push • Utilização de um servidor próprio. • Deve armazenar ou receber o Registration ID do device para realizar o envio. • Irá chamar o servidor do Google, e esse terminará o envio da mensagem. • Instagram publicou o próprio servidor, feito em Noje.js • https://github.com/Instagram/node2dm
  • 12. Autenticação no Google • O servidor também precisa se autenticar com o Google, usando a conta fornecida no cadastro. • Via linha de comando: curl https://www.google.com/accounts/ClientLogin -d Email=your_user -d "Passwd=your_password" -d accountType=GOOGLE -d source=Google-cURL-Example -d service=ac2dm
  • 13. Envio de Mensagem • A mensagem que se deseja enviar deve ser repassada ao Google, que se encarregará da questão de filas e envios. • Via linha de comando: curl --header "Authorization: GoogleLogin auth=AUTHENTICATION_ID" "https://android.apis.google.com/c2dm/send" -d registration_id=your_registration -d "data.payload=MENSAGEM" -d collapse_key=0
  • 14. Recebendo Mensagem • Após registrar a Intent de recebimento, com.google.android.c2dm.intent.RECEI VE, implementar o receiver. • O dado enviado estará na String extra payload.
  • 15. Referências • Android Cloud to Device Messaging Framework • https://developers.google.com/android/c2dm/ • Android Cloud to Device Messaging (C2DM) - Tutorial • http://www.vogella.com/articles/AndroidCloudToDeviceMessaging/ article.html