Funkcje w shortcuts.xml
umożliwiają deklarowanie typów działań, które użytkownicy mogą wykonać, aby uruchomić Twoją aplikację i bezpośrednio wykonać określone zadanie.
Na przykład Akcje aplikacji Asystenta Google korzystają z możliwości, które umożliwiają deweloperom rozszerzanie funkcji aplikacji o wbudowane intencje (BIIs), dzięki czemu użytkownicy mogą aktywować te funkcje i nimi sterować za pomocą poleceń głosowych. Umiejętność składa się z nazwy działania i intent
kierowania na miejsce docelowe w aplikacji, które realizuje zamiar użytkownika.
Definiowanie możliwości w pliku shortcuts.xml
Elementy capability
definiujesz w pliku zasobu shortcuts.xml
w projekcie tworzenia aplikacji na Androida. Aby zdefiniować element capability
, wykonaj te czynności:
- Utwórz zasób
shortcuts.xml
, wykonując instrukcje podane w sekcji Tworzenie statycznych skrótów. W opisie umiejętności podaj te wymagane informacje:
Nazwa możliwości: działanie, które ma obsługiwać aplikacja. Zapoznaj się z dokumentacją komponentu, który wymaga definicji możliwości. Polecenia głosowe w ramach App Actions używają BII
Action ID
do nazw funkcji, które znajdziesz w dokumentacji BII. Na przykład BIIGET_THING
podajeAction ID
jakoactions.intent.GET_THING
.Miejsce docelowe w aplikacji: miejsce docelowe w aplikacji, w której uruchamia się działanie w celu realizacji żądania użytkownika. Definiuj miejsca docelowe w aplikacji za pomocą elementów
intent
zagnieżdżonych w elementachcapability
.Zmapowania parametrów: każdy element
intent
może zawierać parametry, które mają być przekazywane jako daneextra
intencji. Na przykład każda interaktywna interfejsowa usługa aplikacji zawiera pola z informacjami, które użytkownicy często podają w zapytaniach aktywujących tę usługę.
Ten przykład pokazuje definicję możliwości w shortcuts.xml
dla actions.intent.START_EXERCISE
, która umożliwia użytkownikom wydawanie poleceń głosowych za pomocą Asystenta, aby rozpocząć trening w aplikacji 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>
W powyższym przykładzie atrybut <capability>
android:name
odnosi się do START_EXERCISE
BII. Jeśli użytkownik wywoła tę usługę za pomocą Asystenta, mówiąc „OK Google, uruchom bieg w ExampleApp”, Asystent wykona to polecenie, korzystając z informacji podanych w zagnięciu intent
. W tym przykładzie element intent
definiuje te informacje:
android:targetPackage
ustawia docelowy pakiet aplikacji dla tego zamiaru.- Pole
android:targetClass
określa aktywność docelową:com.example.sampleApp.ExerciseActivity
. - Instrukcja
parameter
deklaruje obsługę parametru BIIexercise.name
oraz sposób przekazywania wartości parametru (zbieranej od użytkownika) jako dodatkowych danych wintent
.
Powiązanie skrótów z funkcją
Po zdefiniowaniu możliwości możesz rozszerzyć jej funkcjonalność, powiązać z nią skróty statyczne lub dynamiczne. Sposób łączenia skrótów z capability
zależy od implementowanej funkcji i rzeczywistych słów zawartych w żądaniu użytkownika. Na przykład, gdy użytkownik rozpoczyna bieg w aplikacji do śledzenia aktywności fizycznej, 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łową instancję ćwiczenia „run” dla parametru exercise.name
.
Więcej informacji o kojarzeniu skrótów z akcjami w aplikacji znajdziesz w artykule Omówienie akcji w aplikacji.