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 IDdo określania nazw funkcji. Możesz je znaleźć w dokumentacji BII. Na przykładGET_THINGBII podajeAction IDjakoactions.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
intentzagnieżdżonych w elemenciecapability.Mapowania parametrów: każdy element
intentmoże zawierać parametry, które mają być przekazywane jako daneextraintencji. 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:targetPackageokreśla docelowy pakiet aplikacji dla tego zamiaru. - Pole
android:targetClassokreśla aktywność docelową:com.example.sampleApp.ExerciseActivity. - Intencja
parameterdeklaruje obsługę parametru BIIexercise.namei 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.