Você está na página 1de 6

Objetivo: Este laboratrio tem como objetivo gui-lo pela utilizao dos recursos de GPS do dispositivo Android.

Vamos aprender a criar um Listener que ir ouvir os eventos deste recurso, quando eles ocorrerem. Passo a passo: 1) Crie um novo projeto Android com o nome TesteGPS, com uma atividade principal chamada TesteGPSActivity, dentro do pacote que desejar. 2) Ser necessrio verificar se o AVD suporta GPS, neste caso, abra o Android Virtual Device Manager, na barra superior do Eclipse para adicionarmos esta propriedade ao AVD. 3) Ajuste o AVD (ou crie um novo), adicionando (clicando no boto New) a propriedade GPS support = YES 4) Esta configurao ir dizer ao emulador que este AVD suporta GPS. A partir da, poderemos continuar a nossa aplicao

Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 1 de 6

5) Edite o arquivo layout.xml, arrastando (ou criando manualmente) dois objetos do tipo TextView e coloque seus IDS (@+id/...) de @+id/longitude e @+id/longitude.

6) No arquivo AndroidManifest.xml, adicione a entrada de permisso: <uses-permission android:name=android.permission.ACCESS_FINE_LOCATION/>

Ateno: Esta entrada permitir aplicao acessar o GPS do dispositivo e caso ela no seja declarada, ser lanada uma exceo e a aplicao no ir funcionar. 7) Abra o arquivo da atividade principal TesteGPSActivity.java e crie o mtodo monitorarGPS, conforme imagem abaixo

Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 2 de 6

8) Explicao do cdigo: Um LocationManager responsvel por obter o gerenciador de localizaes do Android, enquanto o LocationListener responsvel por controlar alguma atividade derivada de alguma ao oriunda do GPS (a mudana de localizao do dispositivo, por exemplo). Obtemos a instncia de LocationManager do dispositivo atravs da chamada ao mtodo getSystemService(Context.LOCATION_SERVICE); este mtodo sempre retorna uma referncia ao LocationManager do dispositivo. Criamos uma instncia da classe LocationListener que deve conter os mtodos: 1) onStatusChanged(...) Ser sempre invocado quando o usurio mudar o status do GPS (ativar ou desativar) 2) onProviderEnabled(...) Ser invocado quando o usurio habilitar o GPS do dispositivo 3) onProviderDisabled(...) Ser invocado quando o usurio desabilitar o GPS do dispositivo 4) onLocationChanged(Location location) Ser invocado quando o dispositivo mudar de localizao, dentro dos parmetros informados no mtodo requestLocationUpdates da instncia
Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 3 de 6

de LocationManager. Foi inserida uma lgica simples para alterar os textos dos campos da tela com os valores notificados pelo dispositivo. Invocamos o mtodo requestLocationUpdates para registrar que o LocationListener responsvel por ouvir os eventos do GPS ser a instncia que acabamos de criar: Assinatura do mtodo:
requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)

Implementao lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ls); Estamos informando ao LocationManager que para notificar o LocationListener quando os eventos relativos ao GPS ocorrerem. O que tem que se prestar ateno aqui so os parmetros (long minTime e long minDistance): quanto mais baixo eles forem, mais o dispositivo tentar notificar e mais bateria/recursos ir consumir. O parmetro minTime define de quanto em quanto tempo o GPS tentar notificar o aplicativo, e o minDistance define qual a distncia mnima percorrida (em metros) para que o GPS notifique novamente. Se usar 0,0, como no exemplo, o dispositivo tentar a todo momento notificar a aplicao quando houver alterao de GPS. 9) Ajuste o mtodo onCreate(bundle), conforme o cdigo abaixo:

10) Explicao do cdigo Obter a referncia dos objetos TextView de longitude e latitude e atribu-los aos atributos, depois, chamar o mtodo monitorarGPS(), que quem controla o LocationManager e LocationListener.

Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 4 de 6

11) Agora, execute a aplicao no emulador (RunAs Android Application)

12) O sistema executa e os valores de longitude e latitude ficam em branco, porque o emulador est sem coordenadas de GPS. Vamos emular as coordenadas de GPS, abrindo o prompt de comando e chamando o aplicativo telnet $host $port: > telnet localhost 5554 Nota: Localhost o host onde o emulador do Android est em execuo e 5554 a porta para conexo com o emulador. 13) Ao abrir a conexo telnet com o emulador, atravs do prompt de comando, envie o comando geo fix $lon $lat, onde lon a logitude desejada e lat e latitude. Tambm possvel informar a altitude e o nmero de satlites. 14) Digite o comando geo fix 40 59 e pressionar Enter. Se o telnet colocar um OK na frente do comando porque a operao foi bem sucedida.

Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 5 de 6

15) Agora, olhe a tela do emulador do Android, se a aplicao atualizou seus campos com as coordenadas do GPS que foram informadas, parabns, voc criou com sucesso um aplicativo que usa o GPS do Android.

16) A cada comando geo fix enviado pelo telnet, a aplicao deve ser atualizada (mudar os valores de longitude e latitude) automaticamente. Isto ocorrer de forma exata quando o dispositivo real mudar suas coordenadas. 17) Parabns, voc criou uma aplicao que utiliza as funes de GPS do dispositivo Android, agora, use a criatividade para increment-la ainda mais! Vamos l?

Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 6 de 6

Você também pode gostar