Rozszerzanie aplikacji na Androida na Asystenta Google za pomocą działań w aplikacji (poziom 2)

1. Przegląd

Działania w aplikacji umożliwiają użytkownikom bezpośrednie uruchamianie określonych funkcji aplikacji z poziomu Asystenta Google, co pomaga zwiększyć zasięg aplikacji na Androida. Jako deweloper aplikacji na Androida możesz wdrażać funkcje, które informują Asystenta Google o rodzaju funkcji dostępnych dla użytkowników i o tym, jak chcesz realizować te żądania.

pierwszym ćwiczeniu dotyczącym akcji w aplikacji dowiedzieliśmy się, jak rozszerzyć Asystenta Google o przykładową aplikację treningową, wdrażając wbudowane intencje (BII) z kategorii BII dotyczących Zdrowia i fitnessu. Wbudowane intencje są podzielone na kategorie reprezentujące rodzaje zadań, o które użytkownicy często proszą Asystenta.

Z tego laboratorium dowiesz się, jak dodać do aplikacji działania w aplikacji za pomocą wbudowanych intencji z kategorii „Typowe”, która obejmuje typowe zadania, jakie może wykonywać niemal każda aplikacja na Androida.

Te ćwiczenia z programowania obejmują koncepcje na poziomie średnio zaawansowanym dotyczące tworzenia działań w aplikacji. Musisz mieć doświadczenie w programowaniu aplikacji na Androida i wdrażaniu intencji Androida.

Co utworzysz

W tym laboratorium dodasz do przykładowej aplikacji z listą zadań 2 typowe wbudowane intencje, dzięki czemu użytkownicy będą mogli poprosić Asystenta o:

Trzy kolejne ekrany, na których Asystent Google wyświetla aktywne zadania w aplikacji.

Rysunek 1. Trzy kolejne ekrany, na których Asystent Google wyświetla aktywne zadania w aplikacji.

Czego się nauczysz

Dowiesz się, jak używać wbudowanych intencji kategorii Ogólne, aby rozszerzyć działanie Asystenta na większość aplikacji na Androida. Dowiesz się też, jak testować typowe wbudowane intencje za pomocą wtyczki Asystenta Google do Android Studio.

Wymagania wstępne

  • terminal do uruchamiania poleceń powłoki z zainstalowanym narzędziem Git;
  • Najnowsza stabilna wersja Android Studio.
  • fizyczne lub wirtualne urządzenie z Androidem z dostępem do internetu i Sklepu Google Play, na którym możesz testować działania;
  • Musisz zalogować się w Android Studio na to samo konto Google, a także w aplikacji Google i aplikacji Asystent Google na urządzeniu testowym.

W tym laboratorium kodowania do testowania działań użyjesz urządzenia z Androidem (fizycznego lub wirtualnego). Jeśli używasz urządzenia fizycznego, upewnij się, że jest ono połączone z lokalnym komputerem używanym do programowania. Musisz też zalogować się w aplikacji Google na urządzeniu i w Androidzie Studio, używając tego samego konta Google. Na urządzeniu musi być też zainstalowana aplikacja Asystent Google.

2. Jak to działa

Akcje w aplikacji łączą użytkowników z Asystentem Google z Twoją aplikacją na Androida. Jak to działa?

Gdy użytkownik poinformuje Asystenta, że chce użyć Twojej aplikacji, Asystent wyszuka akcje w aplikacji zarejestrowane w pliku shortcuts.xml. Ten plik zawiera funkcje aplikacji, które łączą intencję wbudowaną lub niestandardową Asystenta z zamiarem Androida lub precyzyjnym linkiem.

Gdy użytkownik wypowie zapytanie do Asystenta, Asystent przeanalizuje dane wejściowe użytkownika i dopasuje je do intencji akcji w aplikacji (w tym Codelabs będzie to wbudowana intencja). Asystent wie, które funkcje obsługujesz, na podstawie pliku shortcuts.xml w aplikacji na Androida. Po dopasowaniu intencji funkcja z tym BII zawiera informacje o tym, jak chcesz zrealizować to żądanie. W tym ćwiczeniu z programowania realizacja to intencja Androida, która uruchamia aktywność w aplikacji.

Ten przepływ działania Asystenta pokazano na tym diagramie:

Schemat opisujący, jak zapytanie głosowe użytkownika jest przetwarzane przez Asystenta Google.Rysunek 2. Schemat opisujący, jak Asystent Google przetwarza zapytanie głosowe.

shortcuts.xml plik projektu zawiera te informacje o każdej czynności w aplikacji:

  • jakiej wbudowanej intencji lub niestandardowej intencji używa akcja w aplikacji;
  • Jaką aktywność Androida lub precyzyjny link należy udostępnić użytkownikowi
  • Jak parametry intencji wbudowanej są mapowane na informacje przekazywane Asystentowi przez użytkownika

Aktywność na Androidzie filtruje i obsługuje podany zamiar Androida lub precyzyjny link, aby zapewnić użytkownikowi pożądaną funkcjonalność. W efekcie użytkownik może korzystać z funkcji aplikacji, gdy Asystent odpowiada na jego zapytanie.

3. Przygotowywanie środowiska programistycznego

W tym ćwiczeniu wykorzystamy przykładową aplikację do tworzenia list zadań na Androida. Ta przykładowa aplikacja może dodawać elementy do list zadań do wykonania, wyszukiwać elementy według kategorii i wyświetlać informacje o ukończonych zadaniach.

Pobieranie plików podstawowych

Aby skopiować repozytorium GitHub przykładowej aplikacji, uruchom to polecenie:

git clone --branch codelab-start https://github.com/actions-on-google/appactions-common-biis-kotlin.git

Po sklonowaniu repozytorium wykonaj te czynności, aby otworzyć je w Android Studio:

  1. W oknie Witamy w Android Studio kliknij Importuj projekt.
  2. Znajdź i wybierz folder, do którego sklonowano repozytorium.

Aby zobaczyć wersję aplikacji, która reprezentuje ukończone laboratorium, sklonuj repozytorium przykładowej aplikacji za pomocą flagi --branch master.

Aktualizowanie identyfikatora aplikacji na Androida

Aktualizacja identyfikatora aplikacji jednoznacznie identyfikuje aplikację na urządzeniu testowym i zapobiega wystąpieniu błędu „Zduplikowana nazwa pakietu”, jeśli aplikacja zostanie przesłana do Konsoli Play. Aby zaktualizować identyfikator aplikacji, otwórz app/build.gradle:

android {
...
  defaultConfig {
    applicationId "com.MYUNIQUENAME.android.fitactions"
    ...
  }
}

Zastąp „MYUNIQUENAME” w polu applicationId czymś unikalnym.

Testowanie aplikacji na urządzeniu

Zanim wprowadzisz kolejne zmiany w aplikacji, warto sprawdzić, co potrafi przykładowa aplikacja. Aby uruchomić aplikację na emulatorze, wykonaj te czynności:

  1. W Android Studio wybierz Uruchom > Uruchom aplikację lub na pasku narzędzi kliknij Uruchom.
  2. W oknie Select Deployment Target (Wybierz miejsce docelowe wdrożenia) wybierz urządzenie i kliknij OK. Zalecana wersja systemu operacyjnego to Android 10 (poziom interfejsu API 30) lub nowszy, chociaż działania działają na urządzeniach z Androidem 5 (poziom interfejsu API 21).
  3. Przytrzymaj przycisk Home, aby skonfigurować Asystenta i sprawdzić, czy działa. Jeśli jeszcze tego nie zrobisz, musisz zalogować się w Asystencie na urządzeniu.

Więcej informacji o wirtualnych urządzeniach z Androidem znajdziesz w artykule Tworzenie wirtualnych urządzeń i zarządzanie nimi.

Animacja przedstawiająca przykładową aplikację Lista zadań

Rysunek 3. Animacja przedstawiająca przykładową aplikację Lista zadań.

Przejrzyj aplikację, aby zobaczyć, co potrafi. Kliknięcie ikony plusa powoduje utworzenie nowego elementu zadania, a elementy menu w prawym górnym rogu umożliwiają wyszukiwanie i filtrowanie elementów zadań według stanu ukończenia.

Instalowanie wtyczki testowej

Wtyczka Asystenta Google umożliwia testowanie działań w aplikacji na urządzeniu testowym. Jeśli nie masz jeszcze narzędzia testowego, zainstaluj je, wykonując te czynności:

  1. Kliknij File > Settings (Android Studio > Preferences na macOS).
  2. W sekcji Wtyczki otwórz Marketplace i wyszukaj „Google Assistant”. Możesz też ręcznie pobrać i zainstalować narzędzie testowe.
  3. Zainstaluj narzędzie i ponownie uruchom Androida Studio.

4. Dodawanie możliwości Get Thing BII

actions.intent.GET_THING BII rozszerza funkcję wyszukiwania w aplikacji na Asystenta Google. W tym kroku zaimplementujesz i przetestujesz GET_THING BII, aby umożliwić użytkownikom wyszukiwanie konkretnych zadań w przykładowej aplikacji.

Definiowanie funkcji Pobierz rzecz

Podczas działania aplikacji związanego z wyszukiwaniem Asystent wyodrębnia z zapytania użytkownika wyszukiwane hasła do parametru thing.name BII, a następnie przekazuje tę wartość do aplikacji na Androida.

Aby dodać do aplikacji GET_THING BII, zaktualizuj plik shortcuts.xml znajdujący się w katalogu projektu przykładowego app/src/main/res/xml, dodając element <capability> w tagu najwyższego poziomu <shortcuts>:

shortcuts.xml

<shortcuts ....>
    <capability android:name="actions.intent.GET_THING">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.yourApplicationId.appaction"
            android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
            <parameter
                android:name="thing.name"
                android:key="q"/>
        </intent>
    </capability>
</shortcuts>

Powyższa konfiguracja:

  1. Deklaruje, że aplikacja odpowiada na GET_THING BII.
  2. Określa, jak utworzyć intencję Androida, która uruchamia aplikację w odpowiedzi na tę wbudowaną intencję.
    • Aktywność jest identyfikowana za pomocą parametrów targetPackagetargetClass.
    • Parametr BII thing.name jest mapowany na intencję Extra o nazwie q.

Nazwane działanie musi być obecne w pliku manifestu aplikacji i eksportowane.

Przesłana aplikacja na Androida zawiera metadane, dzięki czemu plik AndroidManifest wie o pliku shortcuts.xml:

<meta-data
   android:name="android.app.shortcuts"
   android:resource="@xml/shortcuts" />

Testowanie działania w aplikacji

Aby przetestować wyszukiwanie w aplikacji za pomocą Asystenta, wykonaj te czynności:

  1. Sprawdź, czy urządzenie z Androidem jest połączone.
  2. Kliknij Narzędzia > Asystent Google > Narzędzie do testowania akcji w aplikacji.
  3. Kliknij Utwórz podgląd, aby zaakceptować domyślne wartości nazwy aplikacjiustawień regionalnych. Jeśli pojawi się taka prośba, zapoznaj się z zasadami dotyczącymi akcji w aplikacji i warunkami korzystania z usługi i je zaakceptuj.
  4. W pierwszym kroku, w którym narzędzie prosi o wybranie i skonfigurowanie BII, kliknij actions.intent.GET_THING. Zmień wartość namerunning shoes na milk.
  5. Kliknij Uruchom działanie aplikacji.

W tym teście GET_THING BII używa atrybutu name, aby wyszukać w aplikacji zadania zawierające słowo „mleko”. Podobnie jak w przypadku poprzedniej czynności w aplikacji możesz przetestować czynność za pomocą narzędzia testowego lub po prostu powiedzieć „OK Google, wyszukaj mieszankę do ciasta na liście zadań” lub użyć innych fraz wyszukiwania na urządzeniu testowym.

5. Dodawanie możliwości BII funkcji Otwórz aplikację

W tym kroku wdrażasz funkcję BII Otwórz aplikację, która umożliwia użytkownikom wyświetlanie aktywnych i ukończonych zadań za pomocą Asystenta. Aby to zrobić, wypełnij funkcję w shortcuts.xml, która zawiera informacje o tym, jak jest ona wywoływana, jak przekazywane są parametry i które intencje Androida należy wywołać. W tym ćwiczeniu użyjesz interfejsu OPEN_APP_FEATURE BII. Po zaimplementowaniu tego BII przetestuj działanie na urządzeniu.

Dodawanie funkcji otwierania aplikacji

Dodaj drugą funkcję do funkcji Otwórz aplikację w shortcuts.xml pod elementem Funkcja pobierania obiektu:

shortcuts.xml

<capability android:name="actions.intent.OPEN_APP_FEATURE">
   <intent
       android:action="android.intent.action.VIEW"
       android:targetPackage="yourApplicationId"
       android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
       <parameter
           android:name="feature"
           android:key="feature"/>
   </intent>
</capability>

Ta funkcja mapuje BII funkcji Otwórz aplikację i intencję Androida, więc gdy funkcja Otwórz aplikację zostanie aktywowana, aktywowana zostanie też intencja Androida.

Przed wywołaniem intencji Androida z danych wejściowych użytkownika pobierane są obsługiwane parametry. Interfejs BII obsługuje 1 parametr, feature, który reprezentuje funkcję aplikacji wyodrębnioną z zapytania użytkownika.OPEN_APP_FEATURE Ta aplikacja będzie obsługiwać 2 rodzaje funkcji: Aktywne zadanie i Ukończone zadanie. Te funkcje umożliwiają użytkownikom otwieranie aplikacji z wyfiltrowanym widokiem listy zadań. Aby obsługiwać te funkcje, musisz używać spisu wbudowanych zasobów.

Obsługa parametrów intencji za pomocą spisu wbudowanych zasobów

Parametry intencji reprezentują elementy wyodrębnione z zapytania użytkownika. Jeśli na przykład użytkownik powie: „OK Google, zamów pizzę w aplikacji ExampleApp”, Asystent wyodrębni słowo „pizza” do parametru intencji food.item schema.org i przekaże go do działania, aby je obsłużyć.

Funkcja BII „Otwórz aplikację” obsługuje 1 parametr, feature, który reprezentuje funkcję aplikacji wyodrębnioną z zapytania użytkownika. Ten parametr wymaga spisu wbudowanych zasobów, który udostępnia Asystentowi zestaw obsługiwanych nazw funkcji aplikacji, aby dopasować do nich wartość parametru.

Aby obsłużyć parametr intencji feature, dodaj skrót do shortcuts.xml za pomocą tego kodu powyżej funkcji Otwórz aplikację:

shortcuts.xml

<shortcut
   android:shortcutId="active_tasks"
   android:shortcutShortLabel="@string/label_active"
   android:enabled="false">
   <capability-binding
       android:key="actions.intent.OPEN_APP_FEATURE">
       <parameter-binding
           android:key="feature"
           android:value="@array/active_tasks_synonyms" />
   </capability-binding>
</shortcut>

<shortcut
   android:shortcutId="completed_tasks"
   android:shortcutShortLabel="@string/label_completed"
   android:enabled="false">
   <capability-binding
       android:key="actions.intent.OPEN_APP_FEATURE">
       <parameter-binding
           android:key="feature"
           android:value="@array/completed_tasks_synonyms" />
   </capability-binding>
</shortcut>

W powyższym kodzie zdefiniowano spis wbudowanych zasobów, reprezentowany jako elementy shortcut z powiązaniami funkcji i parametrów. Skróty mogą być używane jako zasoby reklamowe w przypadku parametrów BII. Asystent Google dopasowuje zapytanie użytkownika do wartości w powiązaniu parametrów skrótów. W przypadku dopasowanej wartości parametru do intencji realizacji zostanie dodany element shortcutId. Gdy użytkownik aktywuje OPEN_APP_FEATURE BII za pomocą żądania, Asystent dopasowuje wartość parametru funkcji do atrybutu wartości skrótu, przekazując wartość do targetClass jako parameterExtra.

Jeśli na przykład użytkownik powie coś w stylu „OK Google, pokaż moje ukończone zadania w aplikacji ExampleApp”, Asystent dopasuje wartość parametru intencji funkcji „ukończone zadania” do odpowiedniego skrótu w zasobach, który przekaże tę wartość do funkcji OPEN_APP_FEATURE. Asystent wywołuje wtedy intencję Androida.

Testowanie działania w aplikacji

Podczas programowania i testowania możesz używać wtyczki Asystenta Google, aby wyświetlać podgląd akcji w aplikacji w Asystencie na urządzeniu testowym. Możesz też użyć tego narzędzia, aby dostosować parametry intencji dla działania w aplikacji i sprawdzić, jak Twoje działanie obsługuje różne sposoby, w jakie użytkownik może poprosić Asystenta o jego uruchomienie.

Aby przetestować działanie aplikacji za pomocą narzędzia do testowania, wykonaj te czynności:

  1. Podłącz fizyczne urządzenie testowe z Androidem lub uruchom emulator Androida.
  2. Jeśli narzędzie testowe nie jest widoczne, otwórz je, klikając Narzędzia > Asystent Google > Narzędzie testowe działań w aplikacji.
  3. Aby odświeżyć podgląd, kliknij przycisk Aktualizuj.
  4. W pierwszym kroku, w którym narzędzie prosi o wybranie i skonfigurowanie BII, kliknij actions.intent.OPEN_APP_FEATURE.
  5. W polu feature (funkcja) zastąp domyślną wartość History wartością Completed tasks.
  6. Kliknij Uruchom działanie aplikacji.

Możesz też użyć nazwy wywołania bezpośrednio w aplikacji Asystent na urządzeniu, aby wypróbować działanie aplikacji. Możesz na przykład powiedzieć „OK Google, pokaż ukończone zadania na liście zadań”.

6. Dalsze kroki

Gratulacje!

Możesz teraz włączyć obsługę niemal każdej aplikacji na Androida przez Asystenta Google za pomocą typowych wbudowanych intencji.

Omówione zagadnienia

Z tego laboratorium dowiedziałeś(-aś) się:

  • Jak umożliwić użytkownikom szczegółowe omówienie określonych funkcji aplikacji za pomocą Asystenta.
  • Jak użytkownicy mogą uzyskać dostęp do wyszukiwania w aplikacji z poziomu Asystenta.
  • Jak testować typowe intencje wbudowane za pomocą wtyczki Asystenta Google.

Co dalej

Możesz teraz wprowadzić dalsze ulepszenia w aplikacji z listą zadań. Aby zobaczyć gotowy projekt, otwórz repozytorium –master branch na GitHubie.

Oto kilka sugestii, które pomogą Ci dowiedzieć się więcej o rozszerzaniu tej aplikacji za pomocą akcji w aplikacji:

Aby kontynuować przygodę z Actions on Google, zapoznaj się z tymi materiałami:

Obserwuj nas na Twitterze @ActionsOnGoogle, aby być na bieżąco z najnowszymi ogłoszeniami. Możesz też tweetować z użyciem hashtagu #AoGDevs, aby dzielić się tym, co udało Ci się stworzyć.

Ankieta do zbierania opinii

Na koniec wypełnij tę ankietę, aby podzielić się opinią na temat tego samouczka.