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

1. Omówienie

Akcje w aplikacji umożliwiają użytkownikom uruchamianie określonych funkcji Asystenta Google bezpośrednio w aplikacji, dzięki czemu możesz zwiększyć zasięg swojej aplikacji na Androida. Jako deweloper aplikacji na Androida możesz wdrożyć funkcje, dzięki którym Asystent Google będzie wiedzieć, z jakich funkcji mogą korzystać użytkownicy i jak chcesz realizować te prośby.

W pierwszym ćwiczeniu z programowania App Actions pokazaliśmy Ci, jak rozszerzyć Asystenta Google o przykładową aplikację fitness przez wdrożenie intencji wbudowanych (BII) z kategorii Zdrowie i fitness BII. BII są podzielone na kategorie reprezentujące rodzaje zadań, o które użytkownicy często proszą Asystenta.

Z tego ćwiczenia w Codelabs dowiesz się, jak dodawać do aplikacji działania w aplikacji, korzystając z BII, z opisu Common Kategoria BII, która reprezentuje typowe zadania w aplikacji, które może wykonać prawie każda aplikacja na Androida.

To ćwiczenie w Codelabs obejmuje zagadnienia na poziomie średnio zaawansowanym dotyczące programowania za pomocą działań w aplikacji. Musisz mieć doświadczenie w tworzeniu aplikacji na Androida i implementowaniu intencji Androida.

Co utworzysz

W ramach tego ćwiczenia w programie dodasz 2 typowe interfejsy BII do przykładowej aplikacji z listą zadań, dzięki czemu użytkownicy będą mogli poprosić Asystenta o te czynności:

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

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

Czego się nauczysz

Nauczysz się korzystać z popularnych identyfikatorów BII dotyczących kategorii, aby wdrożyć Asystenta w większości aplikacji na Androida. Dowiesz się też, jak przetestować typowe BII za pomocą wtyczki Asystenta Google do Android Studio.

Wymagania wstępne

  • Terminal do uruchamiania poleceń powłoki z zainstalowanym git.
  • Najnowsza stabilna wersja Android Studio.
  • Fizyczne lub wirtualne urządzenie z Androidem, które ma dostęp do internetu do Sklepu Google Play, aby przetestować Twoje działania.
  • Na urządzeniu testowym musisz zalogować się w Android Studio na to samo konto Google, a także w aplikacji Google i aplikacji Asystent Google.

W ramach tego ćwiczenia w Codelabs używasz urządzenia z Androidem (fizycznego lub wirtualnego) do testowania swoich działań. Jeśli używasz urządzenia fizycznego, upewnij się, że jest ono połączone z lokalnym komputerem programistycznym. Musisz też zalogować się w aplikacji Google na urządzeniu i zalogować się w Android Studio przy użyciu 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 Asystenta Google z Twoją aplikacją na Androida. Jak działają?

Gdy użytkownik poinformuje Asystenta, że chce użyć Twojej aplikacji, Asystent szuka akcji w aplikacji zarejestrowanych w Twojej aplikacji na podstawie pliku shortcuts.xml. Ten plik zawiera informacje o możliwościach aplikacji, które łączą intencję wbudowaną lub niestandardową Asystenta z intencją lub precyzyjnym linkiem na Androida.

Gdy użytkownik wypowiada zapytanie do Asystenta, Asystent analizuje jego dane wejściowe i dopasowuje je do intencji w Akcjach w aplikacji (w tym ćwiczeniu w Codelabs będzie to wskaźnik BII). Asystent wie, które funkcje są dostępne w pliku shortcuts.xml w aplikacji na Androida. W przypadku dopasowania intencji, opcja z BII określa sposób, w jaki chcesz zrealizować dane żądanie. W tym ćwiczeniu w programie realizacja to intencja Androida, która uruchamia działanie w Twojej aplikacji.

Ten schemat przedstawia schemat działania Asystenta:

Proces opisujący, jak Asystent Google przetwarza zapytanie głosowe użytkownika\n.Rysunek 2. Proces opisujący, jak Asystent Google przetwarza zapytanie głosowe.

Plik projektu shortcuts.xml zawiera te informacje o każdej akcji w aplikacji:

  • Jakich intencji wbudowanych lub niestandardowych używa akcja w aplikacji
  • Jaką aktywność w Androidzie lub precyzyjny link należy udostępnić użytkownikowi
  • Jak parametry wbudowanej intencji mapują się na informacje przekazane Asystentowi przez użytkownika

Następnie aktywność w Androidzie filtruje i obsługuje podane intencje lub precyzyjny link w Androidzie, aby zapewnić użytkownikowi odpowiednią funkcjonalność. W efekcie Asystent będzie wywoływał funkcje aplikacji w odpowiedzi na zapytanie użytkownika.

3. Przygotowywanie środowiska programistycznego

W tym ćwiczeniu w Codelabs korzystamy z przykładowej aplikacji z listą zadań na Androida. Ta przykładowa aplikacja może dodawać elementy do list zadań, wyszukiwać elementy według kategorii i wyświetlać informacje o ukończonych zadaniach.

Pobieranie plików podstawowych

Uruchom to polecenie, aby sklonować repozytorium GitHub przykładowej aplikacji:

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 Welcome to Android Studio (Witamy w Android Studio) kliknij Import project (Importuj projekt).
  2. Znajdź i wybierz folder, do którego sklonowano repozytorium.

Aby zobaczyć wersję aplikacji reprezentującą ukończone ćwiczenia z programowania, skopiuj przykładowe repozytorium aplikacji za pomocą flagi --branch master.

Aktualizowanie identyfikatora aplikacji na Androida

Aktualizowanie identyfikatora aplikacji jednoznacznie identyfikuje aplikację na urządzeniu testowym i unika „zduplikowanej nazwy pakietu”. występuje wtedy, gdy aplikacja została 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.

Testowanie aplikacji na urządzeniu

Zanim wprowadzisz kolejne zmiany w aplikacji, zapoznaj się z jej możliwościami. Aby uruchomić aplikację w emulatorze, wykonaj te czynności:

  1. W Android Studio wybierz Uruchom > Uruchom aplikację lub kliknij Uruchom na pasku narzędzi.
  2. W oknie Wybierz cel wdrożenia wybierz urządzenie i kliknij OK. Zalecana wersja systemu operacyjnego to Android 10 (poziom interfejsu API 30) lub nowszy, ale działania są wykonywane na urządzeniach z Androidem 5 (poziom interfejsu API 21).
  3. Przytrzymaj przycisk ekranu głównego, aby skonfigurować Asystenta i sprawdzić, czy działa. Musisz zalogować się w Asystencie na swoim urządzeniu (chyba że masz to już za sobą).

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

Animacja pokazująca przykładową aplikację z listą zadań

Rysunek 3. Animacja pokazująca przykładową aplikację z listą zadań.

Omów krótko aplikację, aby poznać jej możliwości. Kliknięcie ikony plusa powoduje utworzenie nowego zadania. Elementy menu w prawym górnym rogu umożliwiają wyszukiwanie i filtrowanie elementów zadania według stanu ukończenia.

Instalowanie wtyczki testowej

Wtyczka Asystent Google umożliwia testowanie akcji w aplikacji na urządzeniu testowym. Jeśli nie masz jeszcze narzędzia do testowania, zainstaluj je, wykonując następujące czynności:

  1. Przejdź do Plik > Ustawienia (Android Studio > Ustawienia w systemie macOS).
  2. W sekcji Wtyczki otwórz Marketplace i wyszukaj „Asystent Google”. Możesz też ręcznie pobrać i zainstalować narzędzie testowe.
  3. Zainstaluj narzędzie i uruchom ponownie Android Studio.

4. Dodaj możliwość Get Thing BII

actions.intent.GET_THING BII rozszerza funkcje wyszukiwania w aplikacji na Asystenta Google. W tym kroku wdrożysz i przetestujesz GET_THING BII, umożliwiając użytkownikom wyszukiwanie określonych zadań w przykładowej aplikacji.

Zdefiniuj możliwość pobierania rzeczy

Podczas wykonywania w aplikacji powiązanego z wyszukiwaniem Asystent wyodrębnia wyszukiwane hasła z zapytania użytkownika do parametru BII thing.name, a potem przekazuje je do aplikacji na Androida.

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

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>

Konfiguracja powyżej:

  1. Deklaruje, że aplikacja odpowiada na zapytanie GET_THING BII.
  2. Określa, jak utworzyć intencję Androida, która powoduje uruchomienie aplikacji w odpowiedzi na dany wskaźnik BII.
    • Aktywność jest rozpoznawana za pomocą parametrów targetPackage i targetClass.
    • Parametr BII thing.name jest mapowany na intencję Extra o nazwie q.

Nazwane działanie musi być widoczne w pliku manifestu aplikacji i wyeksportowane.

Podana aplikacja na Androida zawiera metadane, więc AndroidManifest wie o pliku shortcuts.xml:

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

Testowanie akcji w aplikacji

Aby przetestować wyszukiwanie w aplikacji za pomocą Asystenta:

  1. Sprawdź, czy Twoje urządzenie z Androidem jest połączone.
  2. Wybierz Narzędzia > Asystent Google > App Actions Test Tool.
  3. Kliknij Utwórz podgląd, aby zaakceptować domyślne wartości pól Nazwa aplikacji i język. Gdy pojawi się prośba, przeczytaj i zaakceptuj zasady i warunki korzystania z akcji w aplikacji.
  4. W pierwszym kroku, w którym narzędzie prosi o wybranie i skonfigurowanie mechanizmu BII, wybierz actions.intent.GET_THING. Zmień wartość parametru name z running shoes na milk.
  5. Kliknij Uruchom działanie w aplikacji.

W tym teście funkcja GET_THING BII używa atrybutu name do wyszukiwania w aplikacji zadań zawierających słowo „mleko”. Podobnie jak w przypadku poprzedniej akcji w aplikacji możesz ją przetestować za pomocą narzędzia do testowania lub powiedzieć na urządzeniu testowym „OK Google, wyszukaj ciasto na liście zadań” albo za pomocą innych wyszukiwanych słów.

5. Dodaj możliwość funkcji Otwórz aplikację BII

W tym kroku wdrożysz funkcję otwierania aplikacji BII, umożliwiając użytkownikom wyświetlanie za pomocą Asystenta swoich aktywnych i ukończonych zadań. Aby to zrobić, ukończ funkcję w shortcuts.xml, która zawiera informacje o sposobie wywoływania tej funkcji, przekazywaniu parametrów i o tym, które intencje Androida mają być wywoływane. W tym ćwiczeniu z programowania będziesz używać OPEN_APP_FEATURE BII. Po zaimplementowaniu tego BII przetestuj działanie na swoim urządzeniu.

Dodaj możliwość funkcji Otwórz aplikację

W elemencie Get Thing Capability dodaj w shortcuts.xml drugą możliwość funkcji Otwórz aplikację:

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 jednocześnie funkcję BII funkcji otwartej aplikacji i intencję Androida, więc po aktywowaniu tej funkcji uruchamiana jest intencja Androida.

Przed aktywowaniem intencji Androida obsługiwane parametry są pobierane z danych wejściowych użytkownika. Interfejs OPEN_APP_FEATURE BII obsługuje 1 parametr feature, reprezentujący funkcję aplikacji wyodrębnioną z zapytania użytkownika. Ta aplikacja będzie obsługiwać 2 typy funkcji: aktywne i ukończone. Te funkcje pozwalają użytkownikom otwierać aplikację w filtrowanym widoku listy zadań. Aby obsługiwać te funkcje, musisz używać wbudowanych zasobów reklamowych.

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

Parametry intencji reprezentują elementy wyodrębnione z zapytania użytkownika. Jeśli na przykład użytkownik powie np. „OK Google, zamów pizzę z aplikacji Przykładowa aplikacja”, Asystent wyodrębni słowa „pizza”. do parametru intencji schema.org food.item i przekazuje ten parametr do działania, które ma być obsługiwane.

Funkcja Otwórz aplikację BII obsługuje 1 parametr feature, reprezentujący funkcję aplikacji wyodrębnioną z zapytania użytkownika. Ten parametr wymaga wbudowanego asortymentu. Dzięki temu Asystent otrzyma zestaw nazw obsługiwanych funkcji aplikacji pasujących do wartości parametru.

Aby obsługiwać parametr intencji feature, dodaj do elementu shortcuts.xml skrót za pomocą tego kodu nad funkcją 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 wbudowane zasoby reklamowe, które są reprezentowane jako elementy shortcut z możliwościami i powiązaniami parametrów. Skróty mogą służyć jako zasoby reklamowe parametrów BII. Asystent Google dopasowuje zapytanie użytkownika do wartości w powiązaniu parametrów w Skrótach. W przypadku dopasowanej wartości parametru do intencji realizacji zostanie dodany parametr shortcutId. Gdy użytkownik aktywuje funkcję OPEN_APP_FEATURE BII za pomocą żądania, Asystent dopasuje wartość parametru funkcji do atrybutu wartości skrótu, przekazując wartość do funkcji targetClass jako parameter w Extra.

Jeśli na przykład użytkownik powie np. „OK Google, pokaż moje ukończone zadania w ExampleApp, Asystent dopasuje wartość parametru intencji dotyczącej funkcji („ukończone zadania”) do odpowiedniego skrótu do zasobów reklamowych, który przekazuje tę wartość do funkcji OPEN_APP_FEATURE. Następnie Asystent aktywuje intencję Androida.

Testowanie akcji w aplikacji

Podczas programowania i testowania możesz użyć wtyczki Asystenta Google, aby wyświetlić podgląd akcji w aplikacji z Asystentem na urządzeniu testowym. Za pomocą tego narzędzia możesz też dostosować parametry intencji dla akcji w aplikacji, aby przetestować różne sposoby, w jakie użytkownik może poprosić Asystenta o jej uruchomienie.

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

  1. Podłącz fizyczne urządzenie testowe z Androidem lub uruchom emulator Androida
  2. Jeśli narzędzie testowe jest niewidoczne, otwórz je, wybierając Narzędzia > Asystent Google > App Actions Test Tool.
  3. Kliknij przycisk Aktualizuj, aby odświeżyć podgląd.
  4. W pierwszym kroku, w którym narzędzie prosi o wybranie i skonfigurowanie mechanizmu BII, wybierz actions.intent.OPEN_APP_FEATURE.
  5. W polu funkcji zmień domyślną wartość History na Completed tasks.
  6. Kliknij Uruchom działanie w aplikacji.

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

6. Dalsze kroki

Gratulacje!

Teraz możesz umożliwić współpracę niemal każdej aplikacji na Androida z Asystentem Google, korzystając z popularnych identyfikatorów BII.

Omówione zagadnienia

Dzięki temu ćwiczeniu w programowaniu udało Ci się dowiedzieć:

  • Jak umożliwić użytkownikom szczegółowe poznanie konkretnych funkcji aplikacji za pomocą Asystenta.
  • Jak użytkownicy mogą uzyskać dostęp do wyszukiwania w aplikacji z poziomu Asystenta.
  • Jak przetestować popularne BII za pomocą wtyczki Asystenta Google.

Co dalej?

Tutaj możesz spróbować doprecyzować listę zadań. Aby odwołać się do zakończonego projektu, wyświetl gałąź-master repozytorium na GitHubie.

Oto kilka sugestii, dzięki którym możesz dowiedzieć się więcej o rozszerzaniu możliwości korzystania z tej aplikacji za pomocą działań w aplikacji:

Aby dalej korzystać z Actions on Google, zapoznaj się z tymi materiałami:

Obserwuj nas na Twitterze @ActionsOnGoogle, aby być na bieżąco z najnowszymi informacjami. Aby poinformować o swoich dokonaniach, napisz na Twitterze #AoGDevs.

Ankieta dotycząca opinii

Na koniec wypełnij tę ankietę, aby przekazać nam swoją opinię na temat tego ćwiczenia z programowania.