Utilizando recursos nativos de SMS em aplicações Android
Este artigo apresenta o desenvolvimento de uma aplicação Android completa, a qual permite processar dados recebidos de uma mensagem SMS, persistindo-a automaticamente em um banco de dados local SQLite, sem a interferência do usuários.
Utilizando recursos nativos de SMS em aplicações Android: Este artigo apresenta o desenvolvimento de uma aplicação Android completa, a qual permite processar dados recebidos de uma mensagem SMS, persistindo-a automaticamente em um banco de dados local SQLite, sem a interferência do usuários. Após isso, o usuário do sistema pode visualizar as mensagem recebidas no programa, assim como os detalhes da mensagem. Como se trata de um artigo introdutório, este pode ser acompanhado inclusive por usuários leigos na tecnologia Android, pois são apresentados todos os conceitos e passos para o desenvolvimento do programa e para a utilização da tecnologia.
Em que situação o tema é útil: Este artigo é útil para programadores leigos ou experientes que desejam utilizar o recurso de SMS em aplicações Android, sendo que este processo permite facilmente a integração das mensagens de texto com o banco de dados da aplicação, por exemplo, permitindo que o conteúdo da mensagem seja persistido e posteriormente processado.
A sociedade moderna exige que as pessoas estejam conectadas constantemente, afim de que as informações sejam compartilhadas de forma rápida, isso incluindo a comunicação pessoa a pessoa, empresa a pessoa ou empresa a empresa.
Essa comunicação iniciou com a necessidade das pessoas manterem contato umas com as outras sem se preocuparem com a distância. Contudo, devido ao constante avanço tecnológico, já não trata simplesmente do contato mantido entre dois ou mais indivíduos. A necessidade atual é facilitar e baratear ao máximo esta comunicação.
Uma forma de permitir a comunicação entre pessoas com baixo custo é o envio de mensagens de texto curtas, também conhecidas por SMS (Short Message Service), as quais permitem a troca de informações.
Os celulares existentes hoje no mercado permitem, além das funcionalidades tradicionais de realizar e receber ligações, o envio e a recepção de SMS. Hoje a maioria das mensagens são enviadas ou recebidas por programas nativos do aparelho celular, havendo em poucos casos sua integração com aplicações específicas.
Pensando nisso, este artigo apresenta o desenvolvimento de um aplicativo que, ao receber uma mensagem SMS, registra ela em um banco de dados, permitindo que esta mensagem seja tratada por outras aplicações, podendo estas ser desktop ou web.
Sobre a plataforma Android
O Android é uma plataforma para desenvolvimento móvel completa, composta por uma linguagem de programação e um sistema operacional, o que permite que os aplicativos desenvolvidos possam usufruir de todos os recursos nativos do sistema operacional Android.
Outra característica do Android é ele ser open source, sendo assim, a comunidade Android cresce a cada dia, o que justifica o constante lançamento de novas versões do Android, assim como a constante atualização dos ambientes de desenvolvimento.
Apesar de ser open source, o Android é mantido pela Open Handset Allice (OHA), um conjunto de várias empresas de tecnologias, lideradas pela Google, o que reflete a seriedade do projeto.
Dentre todas as vantagens da plataforma Android, a maior está no fato do Android ter sido desenvolvido com base no sistema operacional Linux, embora não possua alguns padrões de conjuntos apresentados em algumas distribuições Linux, por isso algumas pessoas não a consideram um sistema operacional Linux.
Arquitetura da plataforma Android
A arquitetura do sistema operacional Android é dividida em camada, sendo elas o núcleo do Linux, bibliotecas, frameworks e aplicações, como ilustra a Figura 1.
A camada núcleo utiliza a versão 2.6 do núcleo do Linux para os serviços centrais do sistema, tais como segurança, gestão de memória, gestão de processos, pilha de protocolos de rede e modelo de drives. O núcleo do Linux também atual como uma camada de abstração entre hardware e o resto da pilha de software.
A camada bibliotecas possui um conjunto de bibliotecas da linguagem C como as bibliotecas das áreas de multimídia. Nessa mesma camada existe a máquina virtual Dalvik, onde os aplicativos Android são executados. Essa máquina virtual possui como característica uma grande integração com a nova geração de hardware dos smartphones, sendo projetada para executar várias máquinas virtuais paralelamente.
Já na camada de framework encontram-se as APIs e os recursos utilizados pelos aplicativos. É nesta camada que se encontram:
- Activity Manager: Gerencia o ciclo de vida de todas as activities;
- Package Manager: É utilizada pelo activity manager para ler as informações dos APKs (pacotes de arquivos do Android);
- Window Manager: Gerencia as apresentações de janelas;
- Content Providers: Compartilhamento de dados entre os aparelhos;
- View System: Disponibiliza todo o tratamento gráfico para a aplicação.
Por fim, a camada de aplicativos contém todos os aplicativos nativos (escritos em Java) do Android, como o cliente de e-mail, mapas, navegadores, calendários, programas de SMS, gerenciador de contatos, agendas, e também os aplicativos Android desenvolvidos pela comunidade.
Recebendo mensagens SMS na plataforma Android
A plataforma Android foi concebida com a intenção de permitir aos desenvolvedores criar aplicações móveis que tirem o máximo de proveito dos recursos que um aparelho portátil possa oferecer. O grande objetivo da plataforma é deixá-la aberta ao máximo, permitindo que, por exemplo, uma aplicação possa utilizar qualquer uma das funcionalidades de núcleo do telefone, tais como efetuar chamadas, enviar mensagens de texto ou utilizar a câmera, permitindo aos desenvolvedores adaptarem e evoluírem cada vez mais essas funcionalidades.
Qualquer telefone móvel que se compra hoje tem a capacidade de enviar e receber mensagens SMS, e quase todos os usuários de qualquer idade sabem como utilizar este recurso. Assim, SMS é uma das principais aplicações do telefone móvel, para alguns usuários tão necessários quanto o recurso de realizar e receber ligações.
Na plataforma Android, a aplicação de SMS já vem integrada com o sistema operacional, sendo uma aplicação nativa, permitindo enviar e receber mensagens de texto sempre que o aparelho celular esteja conectada a rede da operadora. No entanto, em algumas situações este recurso pode ser integrado com as aplicações desenvolvidas pelos programadores, permitindo inclusive a recuperação automática de um SMS a partir de um aplicativo desenvolvido.
Para exemplificar o uso da recepção de SMS, será desenvolvido um aplicativo Android que recebe uma mensagem SMS e armazena-a em uma base de dados local. Essa situação poderia ser muito interessante em um aplicativo comercial, já que as mensagens SMS recebidas pelo aparelho celular podem ser armazenados localmente, e de tempo em tempo pode ser sincronizado com um servidor remoto, permitindo que estas mensagens sejam processadas por um aplicativo Desktop ou Web.
Ferramentas para o desenvolvimento do aplicativo
As ferramentas e as tecnologias utilizadas para o desenvolvimento do sistema incluem:
- Eclipse como IDE para desenvolvimento do sistema;
- ADT (Android Development Tools) plugin que fornece recursos para criação do sistema em Android na IDE Eclipse;
- AVD (Android Virtual Device) emulador para Android;
- Java como linguagem de programação orientada a objetos;
- SQLite como banco de dados no dispositivo móvel, responsável por armazenar informações;
- SQLite Expert, ferramenta para administração do banco de dados.
Na sequência temos uma rápida explicação sobre cada ferramenta utilizada no desenvolvimento do aplicativo.
Eclipse
Eclipse é uma IDE para o desenvolvimento de aplicativos para muitas plataformas, sendo uma referência para o desenvolvimento Android. A versão utilizada para o desenvolvimento deste projeto foi Eclipse Java EE IDE for Web Developers Indigo Service Release 2, o link para download encontra-se na seção Links. Historicamente, o projeto Eclipse foi iniciado pela IBM em novembro de 2001 e apoiado por um consórcio de fornecedores de software. A Eclipse Foundation foi criada em 2004 como uma corporação sem fins lucrativos e seus projetos são open source (código aberto).
A IDE Eclipse é composta por vários plug-ins, esses plug-ins são necessários para o desenvolvimento em plataformas diferentes, como o Android, Java, PHP, C/C++ e muito mais.
Existem muitas vantagens da IDE Eclipse em relação às outras IDEs, pois o Eclipse é uma ferramenta gratuita, com uma ótima performance, fácil instalação dos plug-ins, configurável conforme a necessidade do programador e possui uma enorme comunidade de usuários ativos contribuindo para a IDE.
Para o desenvolvimento Android na IDE Eclipse é necessária a instalação de um plugin chamado ADT.
Android SDK
Android SDK é o kit de desenvolvimento utilizado pelos programadores que desejam desenvolver para a plataforma Android.
O Android SDK fornece as bibliotecas da API (Interface de Programação de Aplicativos) e ferramentas de desenvolvimento necessárias para construir, testar e depurar aplicativos para o Android. Para realizar o download do Android SDK deve-se acessar o endereço que se encontra na seção Links. Após isso, deve-se realizar a instalação do SDK Tools para Windows. O processo de instalação é bem simples, com alguns Next é possível realizar a instalação sem nenhuma dificuldade. Feita a instalação, e com o Eclipse aberto, pode-se verificar as atualização necessárias do SDK, conforme Figura 2.