Możliwości w shortcuts.xml pozwalają zadeklarować typy działań, które użytkownicy mogą wykonać, aby uruchomić aplikację i bezpośrednio wykonać określone zadanie. Możliwość składa się z nazwy działania i intent kierującego na miejsce docelowe w aplikacji, które odpowiada intencji użytkownika.
Definiowanie funkcji w pliku shortcuts.xml
Elementy capability definiujesz w pliku zasobów shortcuts.xml w projekcie programistycznym aplikacji na Androida. Aby zdefiniować element capability, wykonaj te czynności:
- Utwórz zasób
shortcuts.xml, postępując zgodnie z instrukcjami podanymi w artykule Tworzenie skrótów statycznych. W funkcji uwzględnij te wymagane informacje:
Nazwa funkcji: działanie, które ma obsługiwać aplikacja. Zapoznaj się z dokumentacją komponentu dotyczącą funkcji, która wymaga definicji możliwości.
Miejsce docelowe w aplikacji: miejsce docelowe w aplikacji, w którym działanie jest uruchamiane, aby spełnić prośbę użytkownika. Zdefiniuj miejsca docelowe aplikacji za pomocą elementów
intentumieszczonych w elemenciecapability.Mapowania parametrów: każdy element
intentmoże zawierać parametry, które mają być przekazywane jako daneextraintencji.
Poniższy przykład pokazuje definicję zdolności w pliku shortcuts.xml dla actions.intent.START_EXERCISE, czyli wbudowanej intencji, która umożliwia użytkownikom wydawanie poleceń głosowych Asystentowi w celu rozpoczęcia treningu w aplikacji treningowej:
<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 intencji wbudowanej START_EXERCISE. Jeśli użytkownik wywoła tę intencję, mówiąc do Asystenta: „OK Google, rozpocznij bieg w PrzykładowejAplikacji”, Asystent spełni jego prośbę, korzystając z informacji podanych w zagnieżdżonym elemencie intent. Element intent w tym przykładzie definiuje te szczegóły:
android:targetPackageustawia docelowy pakiet aplikacji dla tej intencji.- Pole
android:targetClassokreśla aktywność docelową:com.example.sampleApp.ExerciseActivity. - Intencja
parameterdeklaruje obsługę parametru BIIexercise.namei sposób przekazywania wartości parametru (pobranej od użytkownika) jako dodatkowych danych wintent.
Powiązywanie skrótów z funkcją
Po zdefiniowaniu funkcji możesz rozszerzyć jej funkcjonalność, powiązując z nią skróty statyczne lub dynamiczne. Sposób powiązania skrótów z capability zależy od wdrażanej funkcji i konkretnych słów zawartych w żądaniu użytkownika. Na przykład gdy użytkownik zaczyna biegać z aplikacją do śledzenia aktywności fizycznej, może poprosić Asystenta: „OK Google, zacznij biegać w PrzykładowejAplikacji”. Asystent może użyć skrótu, aby uruchomić instancję capability, która definiuje prawidłowy element ćwiczenia „bieg” dla parametru exercise.name.