• Like
  • Save
Cloud 2 Device Message Framework - AndroidRec
Upcoming SlideShare
Loading in...5
×
 

Cloud 2 Device Message Framework - AndroidRec

on

  • 1,220 views

Palestra tutorial sobre C2DM (Cloud 2 Device Message) apresentada na AndroidRec 2012.

Palestra tutorial sobre C2DM (Cloud 2 Device Message) apresentada na AndroidRec 2012.

Statistics

Views

Total Views
1,220
Views on SlideShare
1,220
Embed Views
0

Actions

Likes
1
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cloud 2 Device Message Framework - AndroidRec Cloud 2 Device Message Framework - AndroidRec Presentation Transcript

    • C2DM Cloud 2 Device Message Neto Marin Globalcode@netomarinhttp://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.
    • C2DMpasso 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 C2DMIntent 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 RegistroIntent 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