Adicionar recursos a atalhos

Os recursos em shortcuts.xml permitem declarar os tipos de ações que os usuários podem realizar para iniciar o app e executar diretamente uma tarefa específica. Um recurso consiste no nome da ação e em um intent que segmenta o destino no app que resolve a intenção do usuário.

Definir recursos em atalhos.xml

Você define elementos capability em um arquivo de recurso shortcuts.xml no projeto de desenvolvimento do app Android. Para definir um elemento capability, faça o seguinte:

  1. Crie um recurso shortcuts.xml seguindo as instruções em Criar atalhos estáticos.
  2. Inclua as seguintes informações obrigatórias na sua capacidade:

    • Nome do capability: a ação que você quer que o app ofereça. Consulte a documentação do componente para o recurso que exige definições de capacidade.

    • Destino no app: o destino no app que a ação inicia para atender à solicitação do usuário. Defina os destinos do app usando elementos intent aninhados no capability.

    • Mapeamentos de parâmetros: cada intent pode conter parâmetros a serem transmitidos como dados extra da intent.

O exemplo a seguir demonstra uma definição de capability em shortcuts.xml para actions.intent.START_EXERCISE, uma BII que permite que os usuários usem comandos falados com o Assistente para iniciar um treino em um app de fitness:

<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="com.example.sampleApp"
      android:targetClass="com.example.sampleApp.ExerciseActivity">
      <parameter
        android:name="exercise.name"
        android:key="exerciseType"/>
    </intent>
  </capability>
</shortcuts>

No exemplo anterior, o atributo <capability> android:name se refere ao BII START_EXERCISE. Se um usuário invocar essa BII pedindo ao Assistente, "Ok Google, inicie uma execução em ExampleApp", o Assistente atenderá a solicitação usando as informações fornecidas no elemento intent aninhado. O intent neste exemplo define os seguintes detalhes:

  • O android:targetPackage define o pacote do aplicativo de destino para este intent.
  • O campo android:targetClass especifica a atividade de destino: com.example.sampleApp.ExerciseActivity.
  • A intent parameter declara suporte para um parâmetro de BII exercise.name e como transmitir o valor de parâmetro, coletado do usuário, como dados extras na intent.

Associar atalhos a um recurso

Depois de definir um recurso, você pode ampliar a funcionalidade dele associando atalhos estáticos ou dinâmicos. A forma como os atalhos são vinculados a um capability depende do recurso que está sendo implementado e das palavras incluídas na solicitação do usuário. Por exemplo, quando um usuário começa uma corrida no seu app de tracker de condicionamento físico pedindo ao Google Assistente: "Ok Google, comece uma corrida no AppDeExemplo". O Google Assistente pode usar um atalho para iniciar uma instância de uma capability que define uma entidade de exercício válida de "corrida" para o parâmetro exercise.name.