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 executar diretamente uma tarefa específica. 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, faça o seguinte:
- Crie um recurso
shortcuts.xmlseguindo as instruções em Criar atalhos estáticos. 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.
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
intentaninhados dentro decapability.Mapeamentos de parâmetros:cada
intentpode conter parâmetros a serem transmitidos como dadosextrado intent.
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 a
o 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:targetPackagedefine o pacote do aplicativo de destino para este intent. - O campo
android:targetClassespecifica a atividade de destino:com.example.sampleApp.ExerciseActivity. - A intent
parameterdeclara suporte para um parâmetro de BIIexercise.namee como transmitir o valor de 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, quando 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.