Os recursos em shortcuts.xml
permitem declarar os tipos de ações que os usuários podem
realizar para iniciar o app e realizar uma tarefa específica diretamente.
Por exemplo, as Ações no app do Google Assistente usam recursos para permitir que os desenvolvedores
estendam recursos no app para intents integradas (BIIs, na sigla em inglês), permitindo que os usuários ativem
e controlem esses recursos usando comandos falados. Um recurso consiste no
nome da ação e em um intent
direcionado ao destino no seu app que
resolve a intent 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:
- Crie um recurso
shortcuts.xml
seguindo as instruções em Criar atalhos estáticos. Inclua as seguintes informações obrigatórias no recurso:
Nome do recurso:a ação que você quer que seu app ofereça suporte. Consulte a documentação do componente para saber o recurso que exige definições de capacidade. Os comandos ativados por voz das Ações no app usam o
Action ID
da BII para nomes de recursos, que podem ser encontrados na referência de BII. Por exemplo, a BIIGET_THING
lista oAction ID
comoactions.intent.GET_THING
.Destino do app:o destino no seu app que a ação inicia para atender à solicitação do usuário. Defina os destinos de aplicativos usando elementos
intent
aninhados dentro decapability
.Mapeamentos de parâmetros:cada
intent
pode conter parâmetros a serem transmitidos como dadosextra
da intent. Por exemplo, cada BII de Ações no app inclui campos que representam informações que os usuários geralmente fornecem em consultas que acionam a BII.
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 Google Assistente para iniciar um treino em um app 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 a um parâmetro de BIIexercise.name
e como transmitir o valor do parâmetro coletado do usuário como dados extras nointent
.
Associar atalhos a um recurso
Depois de definir um recurso, é possível estender a funcionalidade dele associando
atalhos estáticos ou dinâmicos a ele. A forma como os atalhos são vinculados a um capability
depende do recurso que está sendo implementado e das palavras reais incluídas na
solicitação de um usuário. Por exemplo, quando um usuário inicia uma corrida no app de monitoramento
de condicionamento físico perguntando ao Google Assistente: "Ok Google, inicie 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 "execução" para o parâmetro exercise.name
.
Para saber mais sobre como associar atalhos a Ações no app, consulte Visão geral das Ações no app.