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 w działaniach w aplikacji używają wbudowanych intencji - Action IDdo określania nazw funkcji. Możesz je znaleźć w dokumentacji BII. Na przykład- GET_THINGBII podaje- Action IDjako- actions.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 elemencie- capability.
- Mapowania parametrów: każdy element - intentmoże zawierać parametry, które mają być przekazywane jako dane- extraintencji. 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.
