Asystent Google na Wear OS

Asystenci głosowi na zegarku to szybkie i skuteczne scenariusze, gdziekolwiek jesteś. Interakcje głosowe z urządzeniami do noszenia są dynamiczne, co oznacza, że podczas oczekiwania na odpowiedź użytkownik może mówić do nadgarstka bez konieczności patrzenia na urządzenie.

Dzięki akcji Asystenta w aplikacji deweloperzy na Androida mogą rozszerzyć aplikacje na Wear OS o Asystenta Google i szybko przekierowywać użytkowników do ich aplikacji za pomocą poleceń głosowych, np. „OK Google, rozpocznij bieg w aplikacji ExampleApp”.

Ograniczenia

Asystent na Wear obsługuje interakcje z multimediami i śledzeniem 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 identyfikatory BII dotyczące zdrowia i aktywności fizycznej:

Jak to działa

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

Działania w aplikacji są opisane w sekcji shortcuts.xml z elementami funkcji Androida. Elementy Capability łączą intencje wbudowane (BII), czyli semantyczne opisy funkcji aplikacji, z instrukcjami realizacji, takimi jak szablon precyzyjnych linków. Gdy przesyłasz aplikację za pomocą Konsoli Google Play, Google rejestruje możliwości zadeklarowane w shortcuts.xml, aby użytkownicy mogli je aktywować za pomocą Asystenta.

Przebieg działań w aplikacji

Poprzedni diagram przedstawia użytkownik wstrzymujący ćwiczenie w samodzielnej aplikacji. Dostępne są takie kroki:

  1. Użytkownik wysyła do Asystenta prośbę głosową związaną z konkretną aplikacją na urządzenie do noszenia.
  2. Asystent dopasowuje żądanie do 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 parametru PAUSE_EXERCISE BII i wyodrębnia parametr nazwy ćwiczenia „wędrówka”.
  4. Aplikacja jest wyzwalana przez definicję realizacji możliwości shortcuts.xml na potrzeby 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.

  • Powiązanie: gdy działanie aplikacji na urządzeniu do noszenia zależy od jej aplikacji mobilnej, zapytania użytkownika wysyłane do Asystenta za pomocą zegarka są realizowane na urządzeniu mobilnym. Aby ten scenariusz działał prawidłowo, logika realizacji akcji w aplikacji musi być wbudowana w aplikację mobilną.

  • Bez tetheringu: gdy aplikacja do noszenia jest niezależna od aplikacji mobilnej, Asystent odpowiada na zapytania użytkownika lokalnie na zegarku. Aplikacje na urządzenia do noszenia muszą mieć wbudowane funkcje akcji w aplikacji, aby żądania te były prawidłowo wypełniane.

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, z odpowiednim pakietem BII.
  2. Zadeklaruj, że skróty na Androida są obsługiwane w zasobie AndroidManifest.xml aktywności głównej.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. Dodaj element <intent-filter> do pliku AndroidManifest.xml. Umożliwi to Asystentowi korzystanie z precyzyjnych linków do łączenia się z treściami aplikacji.

  4. Utwórz shortcuts.xml, aby podać szczegóły realizacji analityki biznesowej. Za pomocą elementów skrótów capability możesz zadeklarować Asystentowi, jakie interfejsy BIIs obsługuje Twoja aplikacja. Więcej informacji znajdziesz w sekcji Dodawanie uprawnień.

  5. W narzędziu shortcuts.xml wdróż możliwość na potrzeby wybranego wskaźnika BII. Ten przykład ilustruje, w jaki sposób 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ę wariantów mowy użytkownika, korzystając z wbudowanych zasobów reklamowych, które reprezentują funkcje i treść Twojej 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 obsługiwać przychodzącą realizację akcji 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 o wtyczce Asystenta Google dla Androida Studio. Po przetestowaniu aplikacji i utworzeniu wersji testowej możesz poprosić o sprawdzenie działań w aplikacji i je wdrożyć. Zapoznaj się z poniższymi sprawdzonymi metodami, aby dowiedzieć się, jak postępować w przypadku typowych błędów.

Sprawdzone metody

Stosuj te sprawdzone metody, aby zadbać o komfort użytkowników podczas integrowania aplikacji z Asystentem.

Wyświetlaj odpowiedni ekran potwierdzenia wraz z komunikatami haptycznymi i dźwiękowymi, by odpowiedzieć na prośbę użytkownika – przy pomyślnym spełnieniu żądania lub o powiadomieniu o błędzie.

Podstawowa jakość Lepsza jakość Najlepsza jakość
  • Utwórz intencję, która rozpocznie działanie „ConfirmationActivity” na podstawie działania.
  • Utwórz intencję, która rozpocznie działanie „ConfirmationActivity” na podstawie działania.
  • Włącz gong i reakcje haptyczne, aby wskazać bieżący stan.
  • Utwórz intencję, która rozpocznie działanie „ConfirmationActivity” na podstawie działania.
  • zamiana tekstu na mowę (TTS) i komunikaty haptyczne informujące o błędzie lub powodzeniu;

Typowe błędy i sposoby ich poprawiania

W podanych niżej przypadkach błędów użyj zalecanego komunikatu ConfirmationActivity w aplikacji.

Przypadek błędu Przykładowa interakcja użytkownika Odpowiedź aplikacji
Aktywność już trwa "Rozpocznij moje ćwiczenie Ćwiczenie"
"Wznów moje Ćwiczenie"
Błąd wyświetlania: aktywność już trwa”.
Nie rozpoczęto żadnej aktywności "Wstrzymaj/Zatrzymaj moją NazwaĆwiczenia" Błąd wyświetlania: „Nie rozpoczęto żadnej aktywności”.
Niezgodność typów aktywności „Wstrzymaj/Zatrzymaj moją NazwaĆwiczenia”, czyli inny rodzaj ćwiczenia niż bieżące. Błąd wyświetlania: „Niezgodność typu aktywności”.
Błąd logowania „Uruchom moje ćwiczenie Ćwiczenie”, gdy użytkownik nie jest zalogowany w aplikacji. Używaj reakcji haptycznej, aby ostrzegać użytkownika i przekierowywać do ekranu logowania.
Błąd uprawnień Użytkownik nie ma uprawnień do rozpoczęcia żądanej aktywności. Używaj reakcji haptycznej, aby ostrzegać użytkownika i przekierowywać na ekran z prośbą o uprawnienia.
Problem z czujnikiem Użytkownik ma wyłączone usługi lokalizacyjne w ustawieniach urządzenia. Używaj reakcji haptycznej, aby ostrzegać użytkowników i wyświetlać ekran błędu czujnika. Opcjonalne dalsze kroki:
  • Rozpocznij aktywność bez śledzenia czujnika i powiadom użytkownika.
  • Poproś użytkownika o potwierdzenie rozpoczęcia aktywności bez śledzenia z czujnika.