Funkcje w shortcuts.xml
umożliwiają deklarowanie typów działań, które użytkownicy mogą wykonać, aby uruchomić aplikację i bezpośrednio wykonać określone zadanie.
Na przykład działania aplikacji na Asystenta Google wykorzystują możliwości, które pozwalają deweloperom rozszerzać funkcje aplikacji na wbudowane intencje (BII). Dzięki temu użytkownicy mogą aktywować te funkcje i sterować nimi za pomocą poleceń głosowych. Funkcja składa się z nazwy działania i intent
kierującego do miejsca docelowego w aplikacji, które realizuje intencję użytkownika.
Określanie funkcji w pliku shortcuts.xml
Elementy capability
definiujesz w pliku zasobów shortcuts.xml
w projekcie tworzenia aplikacji na Androida. Aby zdefiniować element capability
, wykonaj te czynności:
- Utwórz zasób
shortcuts.xml
, postępując zgodnie z instrukcjami w artykule Tworzenie statycznych skrótów. W funkcji podaj te wymagane informacje:
Nazwa funkcji: działanie, które ma obsługiwać Twoja aplikacja. Zapoznaj się z dokumentacją komponentu, który wymaga definicji funkcji. Polecenia głosowe Działań w aplikacji używają BII
Action ID
do określania nazw funkcji. Możesz je znaleźć w dokumentacji BII. Na przykładGET_THING
BII podajeAction ID
jakoactions.intent.GET_THING
.Miejsce docelowe w aplikacji: miejsce docelowe w aplikacji, w którym uruchamia się działanie, aby spełnić prośbę użytkownika. Zdefiniuj miejsca docelowe aplikacji za pomocą elementów
intent
zagnieżdżonych w elemenciecapability
.Mapowania parametrów: każdy element
intent
może zawierać parametry, które mają być przekazywane jako daneextra
intencji. Na przykład każdy interfejs BII Działań w aplikacji zawiera pola reprezentujące informacje, które użytkownicy często podają w zapytaniach wywołujących ten interfejs.
Poniższy przykład pokazuje definicję funkcji w shortcuts.xml
dla actions.intent.START_EXERCISE
, czyli wbudowanego zamiaru, który umożliwia użytkownikom korzystanie z poleceń głosowych w Asystencie, aby rozpocząć trening w aplikacji do ćwiczeń:
<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>
W poprzednim przykładzie atrybut <capability>
android:name
odnosi się do START_EXERCISE
BII. Jeśli użytkownik wywoła ten BII, pytając Asystenta: „Hej Google, rozpocznij bieg w aplikacji ExampleApp”, Asystent zrealizuje jego prośbę, korzystając z informacji podanych w zagnieżdżonym elemencie intent
. intent
w tym przykładzie
określa te szczegóły:
- Element
android:targetPackage
określa docelowy pakiet aplikacji dla tego zamiaru. - Pole
android:targetClass
określa aktywność docelową:com.example.sampleApp.ExerciseActivity
. - Intencja
parameter
deklaruje obsługę parametru BIIexercise.name
i sposób przekazywania wartości parametru zebranej od użytkownika jako dodatkowych danych wintent
.
Powiązywanie skrótów z funkcją
Po zdefiniowaniu funkcji możesz rozszerzyć jej działanie, przypisując do niej statyczne lub dynamiczne skróty. Sposób powiązania skrótów z capability
zależy od wdrażanej funkcji i rzeczywistych słów zawartych w żądaniu użytkownika. Na przykład, gdy użytkownik rozpoczyna bieg w aplikacji do śledzenia aktywności, prosząc Asystenta: „OK Google, rozpocznij bieg w aplikacji ExampleApp”. Asystent może użyć skrótu, aby uruchomić instancję capability
, która definiuje prawidłowy element ćwiczenia „bieg” dla parametru exercise.name
.
Więcej informacji o przypisywaniu skrótów do akcji w aplikacji znajdziesz w omówieniu akcji w aplikacji.