Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android

Google Fit para Android: Leyendo los Datos del Sensor

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Google Fit for Android.
Google Fit for Android: An Overview
Google Fit for Android: Recording API

Spanish (Español) translation by Marina Cardone (you can also view the original English article)

Introducción

Google Fit es una plataforma que permite a los desarrolladores construir aplicaciones enfocadas en datos de fitness. Una de las herramientas que Google provee es Google Fit para Android, que está disponible como un paquete en Google Play Services.

Mientras que hay muchas APIs diferentes disponibles para Google Fit, como discutimos en este artículo de Envato Tuts+, este tutorial se enfoca en iniciarte y utilizar la data del sensor de lectura de Google Fit en un dispositivo Android. Un proyecto de ejemplo para este tutorial se encuentra en GitHub.

1. Configurando la Consola de Desarrollador

Para poder utilizar Google Fit pra Android, necesitas:

  • habilitar la Fitness API en la Consola Google Developers
  • crear un ID de cliente en OAuth 2.0
  • conectar la Fitness API en tu aplicación Android

Esta sección muestra como configurar tu aplicación Android y la Fitness API. Puedes empezar visitando la Consola Google Developers. Si ya tienes un proyecto para trabajar, puedes saltear el siguiente paso. Si no, continúa y crea un nuevo proyecto para tu aplicación Google Fit.

Paso 1: Crear un Proyecto

Para crear un nuevo proyecto, haz click en el botón azul Create Project en la esquina superior izquierda de la pantalla.

Create Project Button on the Google Cloud Platform

Esto te mostrará un diálogo que pide un nombre de proyecto. Para este tutorial, creé un proyecto llamado TutsPlusGoogleFit. Hay algunas restricciones en cuanto a cómo puedes llamar tu proyecto. Solo letras, números, comillas, guiones, espacios y signos de exclamación son permitidos.

New Project Naming Field on the Google Cloud Platform

Una vez que presionas Create, un diálogo aparece en la esquina inferior derecha de la página, indicando que el proyecto fue creado.

Creating New Project Dialog on Google Cloud Platform

Paso 2: Habilitar la API de Google Fit

Con el proyecto configurado, te llevará a la página de Overview. La forma más fácil de encontrar la API de Google Fit es buscando la palabra clave "fit". Selecciona Fitness API de los resultados que aparezcan.

Search Box for Fitness API

Haz click en Enable API para habilitar la Fitness API.

Enable API Button for Fitness API

Después de habilitar la Fitness API, recibirás una alerta que te informa que también necesitas crear credenciales para utilizar la Fitness API. Afortunadamente, el alerta incluye un botón que nos lleva a la página de Credenciales.

Go to Credentials Button After Enabling the Fitness API

Paso 3: Crear Credenciales

En la página de Credenciales, necesitas proveer cierta información general acerca de tu aplicación en el Credentials Wizard. Especifica que estás usando la Fitness API, que la API se llamará desde una aplicación Android, y que esa aplicación necesita acceso a User Data.

Credentials Configuration Screen

A continuación, haz click en What credentials do I need? (Qué credenciales necesito?) en la parte inferior y crea una client ID de OAuth 2.0 para tu aplicación Android. Necesitas dos piezas de información importantes para este paso:

  • huella de certificado de registro
  • nombre del paquete para la aplicación

Puedes obtener una huella de certificado de registro abriendo la terminal o la consola de comando, y navegando a la localización del certificado de registro de tu aplicación. Esto puede ser tu llave de release o el certificado por default debug.keystore que utiliza Android Studio. Una vez que hayas navegado a tu keystore, puedes generar la SHA1 necesaria con el siguiente comando, donde debug.keystore es el nombre del certificado de registro.

Keystore Data Output From Terminal

Pega la llave SHA1 en el campo SHA1 e ingresa com.tutsplus.googlefit en el campo de nombre del paquete.

Creating an OAuth 20 Client ID

Finalmente, necesitas configurar la pantalla de consentimiento de OAuth 2.0 Esta es la pantalla que muestra al usuario para que pueda garantizar el permiso para que tu aplicación utilice su data de fitness. Este paso requiere tu email y el nombre del producto para mostrar a los usuarios. Para este tutorial, he ingresado Tuts+ Google Fit.

Configuring the Fitness API Consent Screen

Haz click en Continue, y en la siguiente página, haz click en Done para finalizar el proceso de configuración.

Paso 4: Configurar el Proyecto Android

Con tu proyecto preparado y configurado en la Consola de Google Developer, puedes comenzar a crear un nuevo proyecto Android. Asegúrate que el nombre del paquete es igual al que ingresaste en la Consola de Google Developers y configura la aplicación para que utilice aplicaciones Phone y Tablet con una versión de SDK mínima de 14. El nivel mínimo de API para Google Fit es 9. Crea una Empty Activity (Actividad Vacía) para mantener la base del proyecto limpia así te puedes enfocar en la API de Google Fit en este tutorial.

Luego de configurar el proyecto, abre el archivo build.gradle del proyecto e importa el paquete de fitness desde Google Play Services añadiendo la siguiente línea en el nodo de dependencies.

A continuación, abre MainActivity.java y agrega las siguientes interfaces:

  • OnDataPointListener
  • GoogleApiClient.ConnectionCallback
  • GoogleApiClient.OnConnectionFailedListener

Una vez que hayas agregado los métodos requeridos para estas interfaces, tu clase debería verse así:

Finalmente, crea las variables miembro que utilizaras para este tutorial. Puedes copiar las siguientes líneas en el inicio de la clase:

En el siguiente paso, te conectarás a Google Play Services y aprenderás cómo acceder a los datos de fitness del usuario desde tu aplicación.

2. Usando la API de Fitness

Paso 1: Conectado con Google Play Services

Con el proyecto configurado en el Android Studio y la Consola de Google Developer, es momento de sumergirnos en la API de Fitness. En el método onCreate(), confirmas que la aplicación ya está intentando autorizar con la API de Fitness. Luego inicia la instancia GoogleApiClient añadiendo la API de Fitness Sensors, definiendo un scope, y registrando los callbacks de la aplicación. Si no solicitas un scope, tu aplicación fallará al autorizar contra la API de Fitness Sensors.

Luego de iniciar la instancia de GoogleApiClient, necesitas hacerlo conectar con el backend de Google. Puedes hacer esto en onStart().

La primera vez que el usuario corre la aplicación, la conexión con la API de Fitness fallará porque el usuario debe autorizar tu aplicación para acceder a su data de fitness. Puede escuchar este evento en onConnectionFailed() y reaccionar acorde chequeando si la autorización está en progreso. Si es así, llama a startResolutionForResult() así Google Play Services puede manejar apropiadamente al usuario garantizando el permiso para usar su información.

Si corres tu aplicación ahora, quizás se te presente un diálogo pidiendo seleccionar una cuenta de Google para utilizar si tienes más de una cuenta en tu dispositivo.

Google Play Services Email Selection Screen

Cuando el sistema operativo sabe qué cuenta usar, tu aplicación presentará un nuevo diálogo solicitando al usuario garantizar el permiso para que la aplicación lea sus datos de fitness.

Google Play Services Consent Screen

En este punto, el usuario o bien garantiza el permiso a tu aplicación para leer sus datos o cierra el diálogo, cancelando el proceso. Puedes escuchar ambos eventos en onActivityResult() y manipular el resultado. Si el usuario le otorga permiso a tu aplicación, la aplicación recibe una respuesta RESULT_OK y puede intentar conectar con el cliente de API de Google.

Tu aplicación ahora debe ser capaz de conectarse exitosamente a Google Play Services. Con eso fuera del camino, puedes comenzar a enfocarte en la API de Fitness.

Paso 2: Accediendo a los Datos de Pasos con la API de Fitness

Cuando tu instancia GoogleApiClient se ha conectado a Google, el callback onConnected() es disparado. En este callback, necesitas crear un nuevo objeto DataSourcesRequest que define el tipo de datos en los que tu aplicación está interesada. También necesitas crear un ResultCallback que maneja lo que la app debe hacer si los pasos pueden ser recuperados del dispositivo. Con los objetos creados, llama Fitness.SensorsApi.findDataSources() para comenzar a buscar una fuente de datos de pasos válida.

Quizás notes que el método registerFitnessDataListener() en realidad no existe. Este es un método helper que es llamado cuando la fuente de los datos para el cuenta pasos es encontrada, lo que luego crea un objeto SensorRequest para solicitar los datos del sensor cuenta pasos.

En el siguiente fragmento de código, el objeto SensorRequest intenta encontrar un conteo de pasos cada tres segundos. El Fitness.SensorApi luego agrega un request con un nuevo onDataPointListener entonces, cuando nuevos datos están disponibles, el listener es disparado. Si no se encuentran nuevos datos, el OnDataPointListener no se dispara y la API de Fitness espera otros tres segundos antes de volver a comprobar.

Cuando se detecta un cambio en el conteo de pasos, onDataPoint() es invocado. En este método, haces un bucle por los campos en el parámetro DataPoint y muestra un mensaje Toast con el nombre del campo y el valor. En este ejemplo, eso será el cuenta pasos. En tu propia app, usarás una lógica más apropiada para ejecutar tu tarea. Notarás que el comando Toast está envuelto en un Runnable que es pasado a runOnUiThread. Esto es porque el callback no se dispara en el hilo principal de UI.

Toast Message Showing the Steps Data Output

Hay dos cosas más que necesitas hacer para esta prueba. El primero es desconectarte de la SensorApi y Google Play Services cuando terminaste de usarlos. En este ejemplo, haces eso cuando se llama a onStop(). La segunda es guardar el valor de authInProgress que es comprobado por onCreate() en onSavedInstanceState().

Conclusión

En este tutorial, aprendiste como conectar con Google Play Services Fitness API y leer datos del sensor de fitness del dispositivo del usuario. Hasta algo tan simple como datos de pasos para tu usuario puede ser de increíble valor para aplicaciones como Android Wear watch faces o registradores de objetivos. Hay docenas de otros tipos de fuentes de datos que puedes usar y muchas otras APIs con Google Fit para hacer tus aplicaciones mejores todavía.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.