LocationGPSTesteado en versión la 1.0 LocationGPS es un ejemplo de como poder capturar la localización del GPS con Android. El ejemplo funciona de una manera sencilla. Simplemente pulsamos el botón y aparecerá en la pantalla la latitud y la longitud de nuestra posición actual. Capturas del programaComo funcionaEl programa lanza un Thread que será el que se encargará de buscar la posición GPS. Se usa un Thread para poder mostrar mientras que está buscando una barra de proceso (ProgressDialog). Lo primero que tenemos que hacer para poder usar la señal de GPS es añadir al Manifest.xml de nuestro proyecto el permiso "ACCESS_FINE_LOCATION". Para ello escribimos esta línea: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> Luego en el código JAVA necesitamos un objeto LocationManager, al cual asignaremos un escuchador (LocationListener) para que nos informe cada vez que cambia el estado del GPS mediante el método onLocationChanged. Cuando registremos el escuchador podremos asinarle el tiempo y la distancia mínima para que se refresque el estado de la señal GPS. El método run() que llama el Thread al ejecutar el método start() es el siguiente:
Aquí se puede ver como se usa el método requestLocationUpdates del objeto LocationManager para registrar el objeto LocationListener. Varias cosas debemos de saber. En Android podemos manejar las localizaciones a patir de proveedores (Providers). El proveedor GPS_PROVIDER es nuestro GPS y en este código estamos pidiéndole a él que nos diga la posición. Además, para trabajar con Threads en Android es necesario llamar a Looper.prepare(); al principio del método run() y Looper.loop(); al final. Realmente no se para que funcionan, supongo que para controlar el estado del Thread, pero sin estas líneas el programa dará un error en tiempo de ejecución. También tenemos un objeto Handler al cual llamaremos cuando tengamos la localización de nuestro GPS y que se encargará de cerrar la ventana de proceso y de establecer los valores del longitud y latitud en los TextView. Esto último es importante, ya que no podemos establecer los valores de los TextView desde el método onLocationChanged del LocationListener ya que para establecer los valores del GUI no se puede hacer desde un Thread que no sea el principal. Simular una señal de GPS en el emuladorPara poder probar la aplicación en el emulador debemos de mandar una señal de GPS a este. Para ello Eclipse en su perpectiva DDMS de Android tiene una apartado donde se puede enviar la latitud y longitud del GPS, pero a mi no me funciona. La alternativa es hacerlo mediante telnet. Para ello abrimos un terminal (tanto en Windows como en Linux) y escribimos: $ telnet localhost 5554 Esto hará que nos podamos conectar al emulador (que tiene que estar ejecutándose, por supuesto). Una vez que estemos en la Android Conlose simplemente escribimos lo siguiente: $ geo fix 6.46466 8.6456445 Donde el primero valor es la latitud y el segundo la longitud. Para problarlo en el programa seguimos los siguientes pasos:
Descargar
Descargar Proyecto para Eclipse
Descarga el proyecto e impórtalo en Eclipse. Descargar Programa (.apk)
Podrás instalar el programa en el emulador. Simplemente entra en el directorio "tools" del SDK desde línea de comandos y escribe: |