Os recursos no shortcuts.xml
permitem que você declare os tipos de ações que os usuários
podem realizar para iniciar o app e ir diretamente para a execução de uma tarefa específica. Por exemplo, as ações de app do Google Assistente usam recursos para permitir
que os desenvolvedores estendam recursos no aplicativo para intents integradas (BII), 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 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
:
- Crie um recurso
shortcuts.xml
seguindo as instruções em Criar atalhos estáticos. Em seguida, inclua no seu recurso as seguintes informações necessárias:
Nome do recurso: a ação que você quer que seu aplicativo aceite. Consulte a documentação do componente para o recurso que requer definições de recurso. Os comandos ativados por voz das ações no app usam o
Action ID
do BII com nomes de recursos, localizados em Referência de intents integradas. Por exemplo, o BIIGET_THING
lista oAction ID
comoactions.intent.GET_THING
.Destino do app: o destino no seu app que a ação lança 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
do intent. Por exemplo, cada BII de ações do app inclui campos que representam informações que os usuários geralmente fornecem em consultas que acionam o BII.
O exemplo a seguir demonstra uma definição de recursos em shortcuts.xml
para actions.intent.START_EXERCISE
, uma BI 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 a compatibilidade com um parâmetro de intent integradoexercise.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
associando a ele 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 reais
incluídas na solicitação do usuário. Por exemplo, imagine um cenário em que um usuário
inicia uma execução no seu app de rastreamento de condicionamento físico perguntando ao Assistente: "Ok Google,
iniciar uma execução em ExampleApp". O Assistente pode usar um atalho para iniciar uma
instância de um capability
que define uma entidade de exercício válida de "execução" para o
parâmetro exercise.name
.
Para mais informações sobre como associar atalhos às ações do app, consulte a Visão geral das ações no app.