Skip to content

Soporte para comandos de voz en Smartwatches Android

En este tutorial, presentaremos las dos formas que proporciona Google para la realización de tareas sobre dispositivos smartwatches, con tan solo el uso de comandos de voz ya preestablecidos o personalizados por el usuario en una aplicación.

Icono micrófonoAl tratarse Android Wear de la versión especializada de Google para implementar su sistema operativo en relojes inteligentes, era indispensable una integración total del uso de comandos de voz, para la realización de acciones sin necesidad de tocar el dispositivo.

Tratándose de un sistema que no necesita la intervención directa del usuario, y como parte de la experiencia que propone Google en el uso de smartwatches, permite la implementación de acciones de voz de dos formas bien diferenciadas:

1. Declarar acciones de voz proporcionadas por el sistema

Este sistema proporciona determinadas acciones de voz, basadas en tareas, que ya están incorporadas a la plataforma Wear. Estas acciones ya predefinidas, permitirán al usuario simplemente indicar la tarea a realizar, y a continuación la propia aplicación se encargará de filtrar el intent y lanzar la Activity asociada a la tarea filtrada. Es recomendable que dicha implementación se lleve a cabo utilizando mensajes, ya sean visuales o de texto, que avisen al usuario del inicio de la tarea.

Un ejemplo muy común sería la tarea de «Tome una nota», que se implementaría de la siguiente forma (en archivo AndroidManifest.xml):

 Lista de comandos de voz soportados por la plataforma Android Wear

Nombre Frases de ejemplo Intent
Call a car/taxi «OK Google, get me a taxi»»OK Google, call me a car» Action
com.google.android.gms.actions.RESERVE_TAXI_RESERVATION
Take a note «OK Google, take a note»»OK Google, note to self» Action
android.intent.action.SENDCategory
com.google.android.voicesearch.SELF_NOTEExtras
android.content.Intent.EXTRA_TEXT – string para cuerpo de nota
Set alarm «OK Google, set an alarm for 8 AM»»OK Google, wake me up at 6 tomorrow» Action
android.intent.action.SET_ALARMExtras
android.provider.AlarmClock.EXTRA_HOUR – entero que establece la hora de la alarma.
android.provider.AlarmClock.EXTRA_MINUTES – entero que establece el minuto de la alarma.Ambas opciones extras no son obligatorias, pudiendo definir ambas o niguna.
Set timer «Ok Google, set a timer for 10 minutes» Action
android.intent.action.SET_TIMERExtras android.provider.AlarmClock.EXTRA_LENGTH – entero dentro del rango de 1 a 86400 (número de segundos en 24 horas) que representan el largo del temporizador
Start/Stop a bike ride «OK Google, start cycling»»OK Google, start my bike ride»»OK Google, stop cycling» Action
vnd.google.fitness.TRACKMime Type
vnd.google.fitness.activity/bikingExtras
actionStatus – string con el valor ActiveActionStatus cuando comienza y CompletedActionStatus cuando se detiene.
Start/Stop a run «OK Google, track my run»»OK Google, start running»»OK Google, stop running» Action
vnd.google.fitness.TRACKMimeType
vnd.google.fitness.activity/runningExtras
actionStatus – string con el valor ActiveActionStatus cuando comienza y CompletedActionStatus cuando se detiene.
Start/Stop a workout «OK Google, start a workout»»OK Google, track my workout»»OK Google, stop workout» Action
vnd.google.fitness.TRACKMimeType
vnd.google.fitness.activity/otherExtras
actionStatus – string con el valor ActiveActionStatus cuando comienza y CompletedActionStatus cuando se detiene.
Show heart rate «OK Google, what’s my heart rate?»»OK Google, what’s my bpm?» Action
vnd.google.fitness.VIEWMime Type
vnd.google.fitness.data_type/com.google.heart_rate.bpm
Show step count «OK Google, how many steps have I taken?»»OK Google, what’s my step count?» Action
vnd.google.fitness.VIEWMime Type
vnd.google.fitness.data_type/com.google.step_count.cumulativeMime Type
vnd.google.fitness.data_type/com.google.step_count.cumulative

Nota: Tabla elaborada a partir de información de la página oficial de desarrolladores de Android

2. Declarar acciones de voz proporcionadas por una aplicación

Esta opción permite definir acciones de voz para lanzar cualquier Activity definida en la aplicación. Para que esta funcionalidad sea posible, bastará con definir el atributo android:label="AppWear" (en archivo <span=»nombre-fichero»>AndroidManifest.xml) con la Activity a lanzar, para que posteriormente reconozca el comando de voz «Iniciar AppWear».

Además, dentro de la posibilidades de comandos de voz implementado por Google, también proporciona un sistema de construcción de reconocimiento del habla. Para su uso dentro de una aplicación, se deberá llamar al método startActivityForResult(), recibiendo entre sus parámetros el intent declarado, y la acción ACTION_RECOGNIZE_SPEECH. Con la acción anterior se inicia el reconocimiento de voz, para posteriormente, manejar el resultado dentro del método onActivityResult():

Nota: En este enlace, se puede acceder al resto de intents comunes, que permitirán lanzar diferentes Activities con el uso de comandos de voz ya preestablecidos


Imagen: Icon made by Egor Rumyantsev from www.flaticon.com is licensed under CC BY 3.0

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies. También se ha incluido en pruebas un Agente AI que incluye sus propias cookies   
Privacidad