Artigo Java Magazine 55 - XMPP no Android

Neste artigo veremos como funciona o protocolo XMPP, seu suporte no Android e um estudo de caso, com uma aplicação no Android que se comunica com o software de mensagens instantâneas Google Talk.

Esse artigo faz parte da revista Java Magazine edição 55. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

XMPP no Android

Criando um comunicador pessoal com integração no GoogleTalk

Hoje o Android é a sensação da computação móvel. Saiba como usar o protocolo XMPP no Android para criar aplicações de mensagens instantâneas

O Android é uma plataforma opensource para telefonia celular, que suporta aplicações escritas em Java, que executam na máquina virtual Dalvik (nova JVM implementada pelo Google), sobre um kernel Linux.

O interesse geral no Android tem vários motivos, mas podemos citar que ele é totalmente aberto, diferente da grande maioria da indústria de telefonia celular (mesmo os celulares que suportam Java ME costumam ter a JVM executando num sistema operacional proprietário e fechado, como o Symbian ou BREW). E o uso do Java permite fácil aprendizado para milhões de desenvolvedores Java (o conhecimento de Java ME ajuda, mas não é essencial). O Android também oferece facilidades para desenvolvimento que são mais comuns em ambientes de maior porte, como banco de dados, browser programável, GoogleMaps acessível e programável, serviço de localização, etc. Outro diferencial é o acesso total aos dados e funcionalidades de baixo nível do dispositivo, o que em Java ME não é possível, pelo menos não com APIs portáveis.

Devido ao SDK do Android ainda estar nas primeiras versões beta, muitas alterações, atualizações e adições poderão acontecer. O XMPP (Extensible Messaging and Presence Protocol), por exemplo, é um dos protocolos que ainda não tem suporte integral na plataforma.

O XMPP é um protocolo baseado em troca de mensagens XML usado para troca de mensagens instantâneas e informações presenciais. É o protocolo que faz funcionar os programas de troca de mensagem Jabber e Google Talk, por exemplo.

O Android já possui suporte nativo ao XMPP: contém as API’s necessárias para a implementação e uso do protocolo, permitindo o uso de um software dedicado a troca de mensagens instantâneas entre usuários e suas aplicações.

Neste artigo veremos como funciona o protocolo XMPP, seu suporte no Android e um estudo de caso, com uma aplicação no Android que se comunica com o software de mensagens instantâneas Google Talk.

Protocolo XMPP

O protocolo XMPP é um padrão aberto, o que permite o uso de servidores do protocolo por qualquer interessado, tal qual fazemos com os servidores HTTP e de email. Os servidores XMPP, também chamados de servidores Jabber (devido à invenção do XMPP por esta comunidade), possuem diversas implementações open source e também comerciais.

As aplicações de mensagens instantâneas, como o Google Talk, precisam de um servidor XMPP que contenha as contas dos usuários do serviço, incluindo as informações de seu buddy list (listagem dos usuários de contato já cadastrados).  Para realizar a comunicação entre dois usuários do mesmo servidor, o aplicativo manda uma mensagem para o servidor contendo o nome do usuário destino, e o servidor encaminha esta mensagem se o usuário estiver online. Se ele estiver offline, a mensagem é armazenada até que o usuário fique online.

O XMPP também realiza comunicação entre dois usuários registrados em servidores diferentes. Por exemplo, o usuario joao@servidor1.com irá se comunicar com o usuário maria@servidor2.com, sendo cada um cadastrado nos servidores XMPP servidor1.com e servidor2.com. O diagrama da Figura 1 ilustra a comunicação entre os dois usuários.

 

Figura 1. Envio de mensagem XMPP entre servidores diferentes

No caso da conexão entre servidor1 e servidor2 ser bloqueada (em qualquer sentido), a mensagem é descartada. Se o receptor (Maria) não estiver online, a mensagem é armazenada, e quando ela entrar no ar, será entregue.

XMPP no Android

Antes de usar o XMPP, é necessário configurar o usuário do serviço (no caso, o Google Talk).

Configurando o XMPP

Na atual implementação do Android, um usuário é mapeado em cada seção (conexão). Para isto, acessamos o menu gráfico Applications>Dev Tools (Figura 2)>XMPP Settings (Figura 3).

Figura 2. Selecionando menu Dev Tools

" [...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados