System Voice Actions is no longer a recommended path for integrating with Assistant. Please see App Actions documentation for more information on build alternatives.

Comienza a usar las Acciones de voz del sistema

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:

  1. Cómo definir un filtro de intents
  2. Cómo controlar el intent en tu app
  3. 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:

Imagen que muestra las acciones de voz de Google que invocan una app

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