Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre Solução Completa.
Por que eu devo ler este artigo:Push Notifications no Android
Para que uma aplicação possa verificar novas informações no servidor, é necessário um processamento, que além de consumir recursos e bateria, pode onerar o usuário, se ele estiver pagando por um pacote de dados limitado de uma operadora. Para evitar esse tipo de problema, o Android conta com a GCM, para que os clientes sejam notificados para buscar uma determinada informação apenas quando ela estiver disponível. Além disso, a GCM pode servir, por exemplo, para informar os usuários sobre promoções e descontos em um site. Com base nisso, neste artigo mostraremos como enviar informações de uma aplicação web para um dispositivo Android.

Em que situação o tema é útil
Em diversas aplicações se faz necessário verificar se existem atualizações (de algum tipo de informação) disponíveis no servidor. Com GCM podemos implementar uma solução em que uma aplicação servidora avisa para os seus clientes que existe uma nova informação disponível, e então a aplicação Android poderá baixá-la.

Na Edição 107 da Java Magazine, falamos sobre a C2DM (Cloud To Device Messaging) API, que permite que uma aplicação servidora envie mensagens para dispositivos Android através dos servidores do Google. Na oportunidade, apresentamos os principais cenários em que ela se fazia necessária, sua arquitetura, e demonstramos na prática o seu funcionamento.

Entretanto, na última Google I/O (encontro anual dos desenvolvedores Google) a C2DM sofreu uma reformulação e passou a chamar-se Google Cloud Messaging, ou simplesmente GCM. Essa mudança deixou a utilização da API bem mais fácil, uma vez que o Google disponibilizou JARs para serem utilizados tanto nas aplicações Android quanto na aplicação servidora.

O GCM para Android é um serviço gratuito que ajuda desenvolvedores a enviar dados de aplicações servidoras para aplicações Android. O intuito não é trafegar uma grande massa de dados, e sim enviar mensagens simples (de até 4KB), para, por exemplo, avisar que há um novo dado a ser baixado da aplicação servidora. A aplicação servidora poderá enviar mensagens quando for necessário, e ficará a cargo dos servidores do GCM todo o enfileiramento dessas mensagens e a entrega das mesmas para as aplicações mobile.

As principais características do GCM são:

  • Permite que uma aplicação servidora envie mensagens para aplicações Android;
  • Não dá nenhuma garantia da entrega das mensagens e, no caso de entrega, da ordem em que isso ocorre;
  • A aplicação Android não necessita estar rodando para receber as mensagens. O S.O. disparará uma mensagem que será tratada por um Broadcast Receiver (do próprio GCM) assim que uma mensagem chegar;
  • Não provê nenhuma interface gráfica para tratar a mensagem. Simplesmente repassa a mensagem para que a aplicação a trate. Ou seja, a aplicação pode ser tratada da maneira que o desenvolvedor achar conveniente, como exibindo uma notificação, por exemplo;
  • É necessário que o aparelho esteja rodando o Android 2.2 ou superior e ter o Google Play instalado;
  • Utiliza comunicação com os serviços do Google. Deste modo, para dispositivos com versões anteriores à 4.0.4, é necessária uma conta do Google configurada no aparelho.

O GCM trouxe bem mais do que uma simples mudança de nome em relação ao C2DM. Diversas tarefas que tinham que ser implementadas pelo desenvolvedor agora estão encapsuladas em bibliotecas que estão disponíveis para download. Isso visa, além de facilitar o desenvolvimento e a adoção do serviço, trazer certa padronização do código.

Com base nisso, neste artigo focaremos nas principais mudanças introduzidas no GCM, desenvolvendo um projeto de exemplo. Ao final, teremos um aplicativo Android recebendo mensagens vindas da aplicação servidora.

Visão geral da arquitetura

Antes de começarmos a implementação do projeto, precisamos conhecer os termos e os elementos envolvidos na arquitetura do GCM. Eles estão divididos basicamente em duas categorias: os componentes e as credenciais.

O primeiro é composto pelos elementos que trocarão mensagens entre si. Os componentes envolvidos são:

· Dispositivo móvel: é o aparelho (smartphone ou tablet) que está rodando a aplicação Android. Ele deve usar a versão 2.2 ou superior e que tenha o Google Play instalado. Alternativamente podemos usar o emulador com as Google APIs;

· Servidores GCM do Google: recebem as mensagens da aplicação servidora e as entrega aos dispositivos registrados;

· Aplicação servidora: é a aplicação que recebe o registro do dispositivo móvel, armazena o seu id, e envia informações para eles através dos servidores GCM.

...
Quer ler esse conteúdo completo? Tenha acesso completo