Asystent Google na Wear OS

Asystenci głosowi na zegarku umożliwiają sprawne i szybkie działanie, gdziekolwiek jesteś. Interakcje głosowe na urządzeniach do noszenia są dynamiczne, co oznacza, że użytkownik może mówić do nadgarstka, nie patrząc na urządzenie podczas oczekiwania na odpowiedź.

Dzięki akcjom w aplikacji Asystent deweloperzy aplikacji na Androida mogą rozszerzać aplikacje na Wear OS na Asystenta Google, umożliwiając szybkie przekierowywanie użytkowników do aplikacji za pomocą poleceń głosowych, takich jak „OK Google, uruchom aplikację w aplikacji ExampleApp”.

Ograniczenia

Asystent na Wear obsługuje multimedia i monitorowanie aktywności podczas treningu. Wskazówki dotyczące integracji aplikacji do multimediów z Asystentem znajdziesz w artykule Asystent Google i aplikacje do multimediów. Aplikacje na Wear OS obsługują te wskaźniki BII dotyczące zdrowia i fitnessu:

Jak to działa

Akcje w aplikacji rozszerzają funkcje aplikacji o Asystenta, umożliwiając użytkownikom szybki dostęp do funkcji za pomocą głosu. Gdy użytkownik wskaże Asystentowi, że chce użyć Twojej aplikacji, Asystent szuka akcji w aplikacji zarejestrowanych w Twojej aplikacji w zasobie shortcuts.xml aplikacji.

Akcje w aplikacji zostały opisane w sekcji shortcuts.xml za pomocą elementów capability na Androida. Elementy funkcji łączą intencje wbudowane (BII), czyli semantyczne opisy funkcji aplikacji z instrukcjami realizacji, np. szablonem precyzyjnych linków. Gdy prześlesz aplikację za pomocą Konsoli Google Play, Google zarejestruje możliwości zadeklarowane w shortcuts.xml, aby użytkownicy mogli je aktywować z poziomu Asystenta.

Przebieg akcji w aplikacji

Poprzedni diagram pokazuje, jak użytkownik wstrzymuje ćwiczenie w samodzielnej aplikacji. Oto kolejne kroki:

  1. Użytkownik wysyła do Asystenta żądanie głosowe dotyczące konkretnej aplikacji do noszenia.
  2. Asystent dopasowuje żądanie do już wytrenowanego modelu (BII) i wyodrębnia wszystkie parametry znalezione w zapytaniu, które są obsługiwane przez BII.
  3. W tym przykładzie Asystent dopasowuje zapytanie do zapytania PAUSE_EXERCISE BII i wyodrębnia parametr nazwy ćwiczenia „wędrówka”.
  4. Aplikacja jest aktywowana przez definicję realizacji możliwości shortcuts.xml dla tego BII.
  5. Aplikacja przetwarza realizację, wstrzymując ćwiczenie.

Połączenia

Programowanie akcji w aplikacji różni się w zależności od funkcji aplikacji w ekosystemie urządzeń z Androidem.

  • W tetheringu: gdy aplikacja na urządzenia do noszenia wymaga pełnej funkcjonalności od aplikacji, zapytania użytkownika wysyłane do Asystenta na zegarku są realizowane na tym urządzeniu. Aby ten scenariusz działał prawidłowo, logika realizacji działań w aplikacji musi być wbudowana w aplikacji mobilnej.

  • Bez tetheringu: gdy aplikacja na urządzenia do noszenia jest niezależna od aplikacji mobilnej, Asystent odpowiada na zapytania użytkowników lokalnie na zegarku. Aby te żądania zostały prawidłowo wypełnione, funkcje Akcji w aplikacji muszą być wbudowane w aplikację do noszenia.

Dodaj funkcje głosowe do Wear

Zintegruj akcje w aplikacji z aplikacją na Wear OS, wykonując te czynności:

  1. Dopasuj funkcje w aplikacji, które chcesz włączyć głosowo, do odpowiedniego BII.
  2. Zadeklaruj obsługę skrótów na Androidzie w zasobie głównej aktywności AndroidManifest.xml.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. Dodaj element <intent-filter> do pliku AndroidManifest.xml. Dzięki temu Asystent może używać precyzyjnych linków, aby łączyć się z treściami w aplikacji.

  4. Utwórz plik skrótów.xml, aby udostępnić szczegóły realizacji Twoich identyfikatorów BII. Używasz elementów skrótów capability, aby deklarować do Asystenta interfejsy BII obsługiwane przez Twoją aplikację. Więcej informacji znajdziesz w artykule Dodawanie funkcji.

  5. W narzędziu shortcuts.xml zaimplementuj możliwość dla wybranego typu BII. Poniższy przykład przedstawia możliwość zastosowania narzędzia START_EXERCISE BII:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- This is a sample shortcuts.xml -->
    <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="YOUR_UNIQUE_APPLICATION_ID"
          android:targetClass="YOUR_TARGET_CLASS">
          <!-- Eg. name = "Running" -->
          <parameter
            android:name="exercise.name"
            android:key="name"/>
          <!-- Eg. duration = "PT1H" -->
          <parameter
            android:name="exercise.duration"
            android:key="duration"/>
        </intent>
      </capability>
    </shortcuts>
    
  6. W razie potrzeby rozszerz obsługę odmian mowy użytkowników, korzystając z wbudowanych zasobów reklamowych, które reprezentują funkcje i treści w aplikacji.

    <capability android:name="actions.intent.START_EXERCISE">
      <intent
        android:targetPackage="com.example.myapp"
        android:targetClass="com.example.myapp.ExerciseActivity">
        <parameter android:name="exercise.name" android:key="exercise" />
      </intent>
    </capability>
    
    <shortcut android:shortcutId="CARDIO_RUN">
      <capability-binding android:key="actions.intent.START_EXERCISE">
        <parameter-binding
          android:key="exercise.name"
          android:value="@array/run_names" />
        </capability-bindig>
    </shortcut>
    
  7. Zaktualizuj logikę aplikacji, aby zapewnić obsługę przychodzących działań w aplikacji.

    //FitMainActivity.kt
    
    private fun handleIntent(data: Uri?) {
        var actionHandled = true
        val startExercise = intent?.extras?.getString(START_EXERCISE)
    
        if (startExercise != null){
            val type = FitActivity.Type.find(startExercise)
            val arguments = Bundle().apply {
                putSerializable(FitTrackingFragment.PARAM_TYPE, type)
            }
            updateView(FitTrackingFragment::class.java, arguments)
        }
        else{
            showDefaultView()
            actionHandled = false
        }
        notifyActionSuccess(actionHandled)
    }
    

Wyświetlanie podglądu, testowanie i publikowanie aplikacji

Akcje w aplikacji udostępniają narzędzia do sprawdzania i testowania aplikacji. Szczegółowe informacje znajdziesz w artykule Wtyczka Asystent Google do Android Studio. Po przetestowaniu aplikacji i utworzeniu wersji testowej możesz poprosić o sprawdzenie działań w aplikacji i wdrożyć je. Zapoznaj się ze sprawdzonymi metodami dotyczącymi postępowania z typowymi błędami.

Sprawdzone metody

Postępuj zgodnie z tymi zalecanymi sprawdzonymi metodami, aby zadbać o wygodę użytkowników podczas integracji aplikacji z Asystentem.

Wyświetl odpowiedni lub odpowiedni ekran potwierdzenia wraz z reakcją haptyczną i dźwiękiem, aby odpowiedzieć na żądanie użytkownika – po pomyślnym spełnieniu żądania lub w przypadku alertu o błędzie.

Podstawowa jakość Lepsza jakość Najlepsza jakość
  • Utwórz intencję uruchamiania ConfirmationActivity od aktywności.
  • Utwórz intencję uruchamiania ConfirmationActivity od aktywności.
  • Włącz gong ORAZ reakcję haptyczną, aby wskazać obecny stan.
  • Utwórz intencję uruchamiania ConfirmationActivity od aktywności.
  • Zamiana tekstu na mowę (TTS) i reakcja haptyczna wskazująca na błąd lub powodzenie.

Typowe błędy i sposoby ich rozwiązywania

W przypadku wymienionych niżej błędów należy używać komunikatów zalecanych aplikacji ConfirmationActivity wymienionych poniżej.

Wielkość błędu Przykładowa interakcja użytkownika Odpowiedź aplikacji
Działanie już trwa "Uruchom moje ćwiczenie ActivityName"
"Wznów moją nazwę Ćwiczenia"
Błąd wyświetlania: Już trwa aktywność”.
Nie rozpoczęto żadnej aktywności "Wstrzymaj/Zatrzymaj ĆwiczenieName" Błąd wyświetlania: „Nie rozpoczęto żadnej aktywności”.
Niezgodność typów aktywności „Wstrzymaj/Zatrzymaj ĆwiczenieName”, to inny rodzaj ćwiczenia niż trwający. Błąd wyświetlania: „Niezgodność typu aktywności”.
Błąd logowania "Uruchom moje ćwiczenie ActivityName", gdy użytkownik nie jest zalogowany w aplikacji. Reakcja haptyczna powiadamia użytkownika i przekierowuje na ekran logowania.
Błąd uprawnień Użytkownik nie ma uprawnień do rozpoczęcia żądanego działania. Reakcja haptyczna powiadamia o użytkowniku i przekierowuje na ekran z prośbą o uprawnienia.
Problem z czujnikiem Użytkownik ma wyłączone usługi lokalizacyjne w ustawieniach urządzenia. Odtwarzaj reakcję haptyczną, aby powiadamiać użytkowników i wyświetlać ekran błędu czujnika. Opcjonalne dalsze kroki:
  • Rozpocznij aktywność bez śledzenia czujnika i powiadom użytkownika.
  • Aby rozpocząć aktywność bez śledzenia czujnika, poproś użytkownika o potwierdzenie.