miércoles, 10 de febrero de 2016

Trabajando con los Sensores en Android. Parte II.


En esta segunda parte, vamos a explicar cómo desarrollar una app para android que utilice el GPS, la lectura de códigos QR, la API de Google Maps y un poco de Android Wear. Para ello, es recomendable leer este tutorial a la par que visualizáis el código en GitHub y el siguiente tutorial para crear el proyecto.

Esta aplicación consiste en leer unas coordenadas GPS desde un código QR y establecer esa localización como un destino al que llegar. Para ello haremos uso de un mapa que nos proporciona Google y un lector de QR que deberemos tener instalado.

Para el funcionamiento de la aplicación, declaramos las variables de GoogleMap, CameraUpdate y Location para poder posicionar un destino en la vista de nuestro mapa, así como la longitud/latitud del destino.

Empezamos implementando la interfaz GoogleMap.OnMyLocationChangeListener en nuestra clase MainActivity para poder actualizar el mapa en cuanto nuestro GPS detecte que nos hemos movido.

En el método onCreate inicializamos todos los objetos relacionados con el xml (MapFragment para el mapa y Button para el botón de lectura del código QR).

El método getCoordenadas intentará lanzar la aplicación de lectura del cógido QR si existe una app en el dispositivo que realice tal fin, de lo contrario lanzará una excepción y nos informará mediante un Toast que necesitamos tener instalada una app de lectura de QR.

Una vez de vuelta a nuestra aplicación, el método onActivityResult recupera los datos de la lectura del código y traduce el String devuelto al formato que nos interesa, guardar la longitud y la latitud.

En el método onMapReady establecemos nuestra localización (en el caso de que hayamos dado permiso a la aplicación del uso de nuestra posición y tengamos el GPS encendido) y hacemos que el mapa se pueda actualizar cada vez que nuestra posición se cambia en el mapa con mMap.setOnMyLocationChangeListener(this). Creamos el destino de tipo Location para después poder calcular la distancia de nuestra posición al objetivo. Acto seguido, añadimos una marca del destino en el mapa y acercamos la cámara hasta él con un zoom de 15 para poder tener una vista más centrada en nuestro objetivo.

El método onMyLocationChange, se ejecuta cada vez que nuestra posición cambia por lo que aquí mandamos notificaciones cada 10 metros informando de a qué distancia nos encontramos del objetivo y cuando la distancia sea menor de 5 metros, mandamos una notificación avisando que ya hemos llegado al destino. Estas notificaciones las podremos ver en el Android Wear. Para ello debemos configurar Android Wear instalando la aplicación Android Wear App en nuestro teléfono y activar las opciones de desarrollo en el reloj. Tras esto, debemos irnos a donde tengamos el adb de android (generalmente la carpeta .Android de nuestra carpeta principal) y ejecutamos una terminal con los siguientes comandos:


adb forward tcp:4444 localabstract:/adb-hub
adb connect localhost:4444

Hecho esto ya tenemos conectado nuestro PC al android wear y podremos depurar la aplicación.





Para poder obtener una ruta desde nuestra posición hasta el objetivo, pinchamos en la marca y le damos al botón de Google Maps. De esta forma, se nos abrirá la aplicación de Google donde podremos hacer la ruta mientras recibimos las notificaciones en el android wear sobre la distancia, como podemos ver en la siguiente imagen:



 

Las referencias utilizadas para el uso de la API de Google Maps como de Android Wear son las siguientes:

https://desarrollandoandroid.wordpress.com/2014/06/18/google-maps-en-android/
http://www.androidauthority.com/develop-simple-android-wear-app-622043/
http://www.elandroidelibre.com/2015/01/como-instalar-cualquier-aplicacion-en-android-wear.html

Sigue leyendo en la siguiente entrada sobre el reconocimiento de gestos.


No hay comentarios:

Publicar un comentario