Dodaj możliwości do skrótów

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 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:

  1. Utwórz zasób shortcuts.xml, wykonując instrukcje podane w artykule Tworzenie statycznych skrótów.
  2. 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 usługi App Actions używają specyfikacji BII Action ID do nazw funkcji. Informacje na ten temat znajdziesz w dokumentacji BII. Na przykład BII GET_THING podaje, że Action ID to actions.intent.GET_THING.

    • Miejsce docelowe w aplikacji: miejsce docelowe w aplikacji, w którego przypadku działanie jest wykonywane w celu realizacji żądania użytkownika. Definiuj miejsca docelowe aplikacji za pomocą elementów intent zagnieżdżonych w elementach capability.

    • Zmapowania parametrów: każdy element intent może zawierać parametry, które są przekazywane jako dane extra intencji. Na przykład każda interakcja z użytkownikiem dotycząca działań w aplikacji zawiera pola z informacjami, które użytkownicy często podają w zapytaniach aktywujących tę interakcję.

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 poprzednim 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 zadanie, 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 BII exercise.name oraz sposób przekazywania wartości parametru (zbieranej od użytkownika) jako dodatkowych danych w elementach intent.

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 omówieniu akcji w aplikacji.