Quarta-feira, 5 de Maio de 2010
Android: Daemon de geo-localização

Um requisito necessário para o funcionamento do SmartAd é saber a localização dos utilizadores num dado momento. Num cenário académico, não temos acesso a essas informações, e portanto o objectivo foi desenvolver uma aplicação que enviasse para um servidor a localização do utilizador. Esta aplicação foi desenvolvida para o sistema operativo Android.

Tomada a primeira decisão, foi necessário identificar o método de comunicação entre o dispositivo móvel e o servidor. A solução utilizada foi o Jabber, protocolo XMPP, pois através do mecanismo publish/subscriber permite processar as mensagens sempre que um utilizador muda de localização. Adicionalmente é um protocolo orientado a texto, e as mensagens trocadas são XML, sendo bastante fácil extender. A biblioteca utilizada para comunicação via XMPP foi a Smack [1] 

 

A primeira dificuldade, foi encontrar a API no Android que permitisse notificar a aplicação sempre que o utilizador mudasse de localização. O Android têm esse suporte ao nivel do sistema operativo, e têm também uma API de alto nível, event-driven, que dispara sempre que o utilizador se move num determinado raio de acção (configuravel) [2] .  

O segundo passo foi fazer a conexão ao servidor Jabber (gmail foi o escolhido). Definiu-se então o tipo de mensagens enviadas pelo daemon para o servidor identificando o telemóvel e a sua localização. Segue-se a mensagem, em formato XML:

 

<geo>

<location>

<latitude> LATITUDE_VALUE </latitude>

<longitude> LONGITUDE_VALUE </longitude>

</location>

<IMEI>IMEI_VALUE</IMEI>

</geo>  

 

Por fim todo este serviço corre como um serviço background, conseguido à custa da extensão da classe Service da API do Android. Como auxilio a esta tarefa foi utilizado um post num blog em [3].

Segue-se a foto da aplicação a titulo ilustrativo: 

 

[1] - www.igniterealtime.org/projects/smack/

[2] - http://developer.android.com/reference/android/location/LocationListener.html

[3] - http://mylifewithandroid.blogspot.com/2008/02/double-life-of-service.html




Comentar:
De
Nome

Email

Url

Guardar Dados?



Email

Password



Comentário

Máximo de 4300 caracteres




.mais sobre mim
.pesquisar neste blog
 
.Junho 2010
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2
3
4
5

6
7
8
9
10
11
12

13
14
17
18
19

20
21
22
23
24
25
26

27
28
29
30


.posts recentes

. Contexto

. CallCenter

. Ligação entre Sofia-Sip c...

. Integração

. Servidor SMS Center

. MediaGateway

. Servidor: Geo-localização

. Android: Daemon de geo-lo...

. SMS Gateway

. Aspectos Técnicos

.arquivos

. Junho 2010

. Maio 2010

.tags

. todas as tags

.participar

. participe neste blog

blogs SAPO
.subscrever feeds