As ações por voz do sistema não são mais um caminho recomendado para a integração com o Google Assistente. Consulte a documentação de Ações no app para ver mais informações sobre alternativas de compilação.

Primeiros passos com as Ações por voz do sistema

As ações do Google Voice reconhecem várias solicitações de ação falada e digitada e criam intents do Android para elas. Apps como o Play Música e o Keep podem receber essas intents e realizar a ação solicitada. O app também pode declarar compatibilidade com algumas destas ações:

  1. Definir um filtro de intent
  2. Processar a intent no seu app
  3. Atualizar o status de conclusão do app

Para ver uma lista detalhada das ações compatíveis do sistema, consulte a Referência de ações do sistema.

Etapa 1: definir um filtro de intent

Para indicar que o app é compatível com uma ou mais ações do sistema, inclua um filtro de intent para cada ação no arquivo de manifesto do app.

Por exemplo, se o app puder definir um alarme, adicione o seguinte filtro de intent ao arquivo de manifesto:

<activity ...>
    <intent-filter>
        <action android:name="android.intent.action.SET_ALARM"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Se um usuário tiver vários apps que possam processar a intent Set a Alarm, as Ações do Google Voice permitirão que ele escolha o app para concluir a ação:

Imagem mostrando as ações por voz do Google invocando um app

Figura 1: as Ações por voz permitem que os usuários selecionem de apps com suporte às ações do sistema.

Etapa 2: processar a intent no seu app

Quando o app recebe a intent, ele precisa realizar a ação. Neste exemplo, ele precisa definir o alarme. Veja o exemplo de código abaixo.

Etapa 3: atualizar o status de conclusão do app

A API App Indexing permite enviar atividades completas do app ao Google. O Google pode exibir seu conteúdo aos usuários novamente mais tarde, usando as opções de preenchimento automático de consultas do Google app.

Depois que o app executar a ação, chame o método AppIndexApi.end() com um tipo de ação apropriado, por exemplo, Action.TYPE_ADD.

Também é necessário definir o tipo de status de ação apropriado para informar se a ação foi concluída ou não. É possível usar o método setActionStatus para definir o status de uma ação específica.

Veja um exemplo completo que demonstra como processar a intent recebida e usar a API App Indexing para informar que o usuário definiu um alarme:

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);
        }
    }

    ...

}

Referência de ações do sistema

As Ações do Google Voice disparam uma intent quando ele reconhece qualquer uma das ações listadas nas tabelas a seguir.

Ações de alarme

Ação Exemplo de comando
Definir alarme definir um alarme para as 6h
Defina o timer definir um timer para 5 minutos

Ações de comunicação

Ação Exemplo de comando
Fazer uma chamada telefônica ligar para 555-5555
ligar para a Starbucks
ligar para minha mãe
ligar para o correio de voz

As ações Ligar só são acionadas em dispositivos com um discador integrado (como um telefone) e em dispositivos com aplicativos que suportam a discagem (como um tablet com um aplicativo de VoIP).

Ações de condicionamento físico

Ação Exemplo de comando
Iniciar/parar uma pedalada iniciar um passeio de bicicleta
Iniciar/parar uma corrida Iniciar uma corrida
Iniciar/parar um treino iniciar um treino
Mostrar frequência cardíaca mostrar frequência cardíaca
Mostrar contagem de passos mostrar contagem de passos

Ações locais

Ação Exemplo de comando
Reservar um táxi reservar um táxi

A ação Reservar um táxi só é acionada no Android Wear.

Ações de mídia

Ação Exemplo de comando
Tocar músicas da pesquisa tocar michael jackson billie jean
tocar uma música
tocar música clássica
tocar na parede
tocar floyd rosa no vnstreamer
Tirar uma foto Tirar uma foto
Gravar um vídeo Gravar um vídeo

Ações abertas

Ação Exemplo de comando
URL de abertura Abrir twitter.com
Abrir aplicativo Abrir Twitter (funciona por padrão; não há intenção específica)

Ações de produtividade

Ação Exemplo de comando
Criar uma nota anotar compras de alimentos

Ações da pesquisa

Ação Exemplo de comando
Pesquisar usando um app específico pesquisar vídeos de gatos no youtube