Observa los asistentes de voz habilitar situaciones rápidas y eficientes sobre la marcha. Las interacciones de voz en wearables son dinámicas, lo que significa que el usuario puede hablarle a su muñeca sin mirar necesariamente el dispositivo mientras espera una respuesta.
Con las Acciones en apps de Asistente, los desarrolladores de Android pueden extender las apps para Wear OS al Asistente de Google y redireccionar a los usuarios a sus apps con comandos por voz, como "Hey Google, inicia mi carrera en AppDeEjemplo".
Limitaciones
Asistente en Wear admite interacciones de contenido multimedia y seguimiento de actividades de entrenamiento. Si deseas obtener orientación para integrar apps de música con Asistente, consulta Asistente de Google y las apps de música. Los siguientes BII de Salud y fitness son compatibles con apps para Wear OS:
Cómo funciona
Las Acciones en apps extienden las funciones de tu app al Asistente, lo que les permite a los usuarios acceder ellas rápidamente, con la voz. Cuando un usuario le indica al Asistente que desea usar tu app, este busca Acciones en apps que hayas registrado en ella, en el archivo shortcuts.xml
de la app.
Las Acciones en apps se describen en shortcuts.xml
con elementos de capacidad de Android.
Los elementos de capacidad vinculan intents integrados (BII), que son descripciones semánticas de la capacidad de una app, con instrucciones de entrega, como una plantilla de vínculos directos. Cuando subes tu app con Google Play Console, Google registra las capacidades declaradas en shortcuts.xml
y las pone a disposición de los usuarios para que las activen desde Asistente.
En el diagrama anterior, se muestra cómo un usuario pausa su ejercicio en una app independiente. Los pasos a continuación describen lo que ocurre:
- El usuario realiza una solicitud de voz al Asistente para la app para wearables específica.
- Asistente asocia la solicitud a un modelo previamente entrenado (BII) y extrae cualquier parámetro que se encuentre en la consulta que admita el BII.
- En el ejemplo, Asistente asocia la consulta con el BII
PAUSE_EXERCISE
y extrae el parámetro del nombre del ejercicio, "caminata". - La app se activa a través de su definición de entrega de capacidades de
shortcuts.xml
para este BII. - La app procesa la entrega y pausa el ejercicio.
Conectividad
El desarrollo de las Acciones en apps varía según la funcionalidad de tu app dentro del ecosistema de dispositivos con Android.
Conexión: Cuando una app para wearables depende de la app para dispositivos móviles para obtener una funcionalidad completa, las consultas que los usuarios hacen al Asistente mediante el reloj se completan en el dispositivo móvil. La lógica de entrega de Acciones en apps debe estar integrada en la app para dispositivos móviles para que esta situación funcione correctamente.
Sin conexión: Cuando una app para wearables es independiente de la app para dispositivos móviles en cuanto a la funcionalidad, Asistente entrega las consultas de los usuarios de forma local en el reloj. Las funciones de Acciones en apps deben estar integradas en la app para wearables de modo que estas solicitudes se completen de forma correcta.
Cómo agregar capacidades de voz a Wear
Para integrar Acciones en apps con tu app para Wear OS, sigue estos pasos:
- Haz coincidir las funciones de la app que deseas habilitar por voz con un BII correspondiente.
Declara la compatibilidad con los atajos de Android en tu recurso
AndroidManifest.xml
de la actividad principal.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
Agrega un elemento
<intent-filter>
a AndroidManifest.xml. Esto permite que Asistente use vínculos directos para conectarse al contenido de tu app.Crea el archivo shortcuts.xml para brindar detalles de entrega para tus BII. Usa elementos de atajo de
capability
para declarar al Asistente los BII que admite tu app. Para obtener más información, consulta Cómo agregar capacidades.En
shortcuts.xml
, implementa una capacidad para el BII que elijas. En el siguiente ejemplo, se muestra una capacidad para el BIISTART_EXERCISE
:<?xml version="1.0" encoding="utf-8"?> <!-- This is a sample shortcuts.xml --> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.START_EXERCISE"> <intent android:action="android.intent.action.VIEW" android:targetPackage="YOUR_UNIQUE_APPLICATION_ID" android:targetClass="YOUR_TARGET_CLASS"> <!-- Eg. name = "Running" --> <parameter android:name="exercise.name" android:key="name"/> <!-- Eg. duration = "PT1H" --> <parameter android:name="exercise.duration" android:key="duration"/> </intent> </capability> </shortcuts>
Si corresponde, expande la compatibilidad para las variaciones de voz del usuario mediante un inventario intercalado, que represente funciones y contenido en tu app.
<capability android:name="actions.intent.START_EXERCISE"> <intent android:targetPackage="com.example.myapp" android:targetClass="com.example.myapp.ExerciseActivity"> <parameter android:name="exercise.name" android:key="exercise" /> </intent> </capability> <shortcut android:shortcutId="CARDIO_RUN"> <capability-binding android:key="actions.intent.START_EXERCISE"> <parameter-binding android:key="exercise.name" android:value="@array/run_names" /> </capability-bindig> </shortcut>
Actualiza la lógica de la app para controlar la entrega de Acciones en apps entrantes.
//FitMainActivity.kt private fun handleIntent(data: Uri?) { var actionHandled = true val startExercise = intent?.extras?.getString(START_EXERCISE) if (startExercise != null){ val type = FitActivity.Type.find(startExercise) val arguments = Bundle().apply { putSerializable(FitTrackingFragment.PARAM_TYPE, type) } updateView(FitTrackingFragment::class.java, arguments) } else{ showDefaultView() actionHandled = false } notifyActionSuccess(actionHandled) }
Obtén una vista previa de tu app, pruébala y publícala
Las Acciones en apps proporcionan herramientas para revisar y probar tu app. Para obtener información más detallada, consulta el complemento de Asistente de Google para Android Studio. Una vez que hayas probado tu app y creado una versión de prueba, podrás solicitar una revisión de Acciones en apps y, luego, implementarla. Revisa las siguientes prácticas recomendadas para obtener orientación a la hora de manejar errores comunes.
Prácticas recomendadas
Sigue estas prácticas recomendadas para crear una experiencia del usuario positiva cuando integres tu app con Asistente.
Muestra la pantalla de confirmación correspondiente o una relevante, junto con respuestas táctiles y de audio, para responder a una solicitud del usuario, ya sea cuando se completa correctamente una solicitud o para alertar sobre un error.
Calidad básica | Calidad mejorada | Mejor calidad posible |
---|---|---|
|
|
|
Errores frecuentes y soluciones
Para los siguientes casos de error, usa la siguiente mensajería recomendada de la app ConfirmationActivity
.
Caso de error | Ejemplo de interacción del usuario | Respuesta de la app |
---|---|---|
La actividad ya está en curso |
"Iniciar mi NombreDelEjercicio". "Reanudar mi NombreDelEjercicio". |
Error de visualización: "Already ongoing activity". |
No se inició ninguna actividad | "Pausar/detener mi NombreDelEjercicio". | Error de visualización: "No activity started". |
Discrepancias en los tipos de actividad | "Pausar/detener mi NombreDelEjercicio", que es un tipo de ejercicio diferente de la actividad en curso. | Error de visualización: "Activity type mismatch". |
Error al iniciar sesión | "Iniciar mi NombreDelEjercicio" cuando el usuario no haya accedido a la app. | Reproduce una respuesta táctil para avisar al usuario y redireccionarlo a la pantalla de acceso. |
Error de permisos | El usuario no tiene permiso para iniciar la actividad solicitada. | Reproduce una respuesta táctil para avisar al usuario y redireccionarlo a la pantalla de solicitud de permisos. |
Problema con el sensor | El usuario tiene los servicios de ubicación desactivados en la configuración de su dispositivo. |
Reproduce una respuesta táctil para avisar al usuario y mostrarle la pantalla de error del sensor. Próximos pasos (opcionales):
|