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ą te możliwości, aby umożliwić deweloperom rozszerzanie funkcji aplikacji na wbudowane intencje (BII), dzięki czemu 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 powyższym przykładzie atrybut <capability>
android:name
odnosi się do START_EXERCISE
BII. Jeśli użytkownik wywoła ten BII, pytając Asystenta: „OK 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 – zebranych 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.