Google Voice Actions reconoce muchas solicitudes de acciones habladas y escritas y crea intents para Android para ellas. Las apps como Play Música y Keep pueden recibir estos intents y realizar la acción solicitada. Tu app también puede declarar la compatibilidad con algunas de estas acciones:
- Cómo definir un filtro de intents
- Cómo controlar el intent en tu app
- Actualiza el estado de finalización de tu app
Para obtener una lista detallada de las acciones del sistema admitidas, consulta la Referencia de acciones del sistema.
Paso 1: Define un filtro de intents
Para indicar que tu app admite una o más acciones del sistema, incluye un filtro de intent para cada acción en el archivo de manifiesto de tu app.
Por ejemplo, si tu app puede configurar una alarma, agrega el siguiente filtro de intents a tu archivo de manifiesto:
<activity ...> <intent-filter> <action android:name="android.intent.action.SET_ALARM"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
Si un usuario tiene varias apps que pueden manejar el intent Establecer una alarma, las Acciones de voz de Google le permiten elegir la app para completar la acción:
Figura 1: Las acciones de voz permiten a los usuarios seleccionar apps que admiten acciones del sistema.
Paso 2: Controla el intent en tu app
Cuando tu app recibe el intent, debería realizar la acción. En este ejemplo, debería establecer la alarma. Consulta el siguiente ejemplo de código.
Paso 3: Actualiza el estado de finalización de tu app
La API de Indexación de aplicaciones te permite enviar actividades completadas a Google. Luego, Google puede volver a mostrar tu contenido a los usuarios mediante el autocompletado de consultas desde Google app.
Después de que tu app realice la acción, llama al método AppIndexApi.end()
con un tipo de acción adecuado, por ejemplo, Action.TYPE_ADD
.
También debes configurar el tipo de estado de acción adecuado para informar si la acción se completó con éxito o no. Puedes usar el método setActionStatus para establecer el estado de una acción en particular.
A continuación, se muestra un ejemplo completo que muestra cómo manejar el intent entrante y cómo usar la API de indexación de aplicaciones para informar que el usuario estableció una alarma correctamente:
public class MainActivity extends Activity {
private static final Uri ALARM_URI = Uri.parse("android-app://com.myclockapp/set_alarm_page");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
// Get the intent
Intent intent = getIntent();
if (AlarmClock.ACTION_SET_ALARM.equals(intent.getAction())) {
if (intent.hasExtra(AlarmClock.EXTRA_HOUR)) {
// Step 2: get the rest of the intent extras and set an alarm
...
}
// Step 3: report the action through the App Indexing API
Thing alarm = new Thing.Builder()
.setName("Alarm for 4:00 PM")
.setDescription("Alarm set for 4:00 PM, with the 'Argon' ringtone"
+ " and vibrate turned on.")
.setUrl(APP_URI)
.build();
Action setAlarmAction = new Action.Builder(Action.TYPE_ADD)
.setObject(alarm)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
AppIndex.AppIndexApi.end(mClient, setAlarmAction);
}
}
...
}
Referencia de acciones del sistema
Las Acciones de voz de Google activan un intent cuando reconoce cualquiera de las acciones enumeradas en las siguientes tablas.
Acciones de la alarma
Acción | Comando de ejemplo |
---|---|
Establecer alarma | establece una alarma para las 6 a.m. |
Establecer cronómetro | establece un temporizador de 5 minutos |
Acciones de comunicación
Acción | Comando de ejemplo |
---|---|
Cómo iniciar una llamada telefónica | llamar al 555-5555 llamar a Starbucks llamar a mamá llamar al buzón de voz |
Las acciones de llamada solo se activan en dispositivos con un marcador incorporado (como un teléfono) y en dispositivos con apps que admiten la marcación (como una tablet con una app de VoIP).
Acciones de entrenamiento
Acción | Comando de ejemplo |
---|---|
Inicia o detén un paseo en bicicleta | comienza un paseo en bicicleta |
Cómo iniciar o detener una carrera | comienza a correr |
Inicia o detén un entrenamiento | iniciar una sesión de ejercicios |
Mostrar ritmo cardíaco | mostrar ritmo cardíaco |
Mostrar recuento de pasos | mostrar recuento de pasos |
Acciones locales
Acción | Comando de ejemplo |
---|---|
Reservar un taxi | reservar un taxi |
La acción Reservar un taxi solo se activa en Android Wear.
Acciones multimedia
Acción | Comando de ejemplo |
---|---|
Reproduce música de la búsqueda |
reproduce michael jackson billie jean reproduce música reproduce música clásica reproduce desde la pared reproduce rosa de floyd en vnstreamer |
Tomar una foto | tomar una foto |
Grabar un video | grabar un video |
Abrir acciones
Acción | Comando de ejemplo |
---|---|
Abrir URL | abre twitter.com |
Abrir aplicación | open twitter (funciona de forma predeterminada, sin intent específico). |
Acciones de productividad
Acción | Comando de ejemplo |
---|---|
Crear una nota | crear una nota comprar alimentos |
Acciones de búsqueda
Acción | Comando de ejemplo |
---|---|
Cómo realizar búsquedas con una app específica | busca videos de gatos en youtube |