W przypadku wielu intencji najlepsza odpowiedź to prosta, zwięzła odpowiedź, lub szybki, interaktywny interfejs. Możesz w niej wyświetlać widżet aplikacji na Androida w Asystencie Google do realizacji tego typu intencji.
Z tego przewodnika dowiesz się, jak odpowiadać na pytania użytkowników Asystenta za pomocą widżetów oraz jak ulepszyć działanie widżetów Asystenta dzięki akcjom w aplikacji Biblioteka rozszerzeń widżetów.
Zalety
Widżety to miniaturowe widoki aplikacji, które można umieszczać na urządzeniach z Androidem. takich jak Menu z aplikacjami czy ekran blokady. Dzięki akcjom w aplikacji wpływ widżetów, umożliwiając ich wyświetlanie w Asystencie:
- Wykrywalność: proaktywnie wyświetlaj widżety w odpowiedzi na żądania użytkowników zapytań w języku naturalnym.
- Zaangażowanie: wyświetlaj widżety bez użycia rąk, na przykład podczas wyświetlania Asystent podaje Twoje wyniki na ekranie blokady i gdy jest włączony Android Auto
- Utrzymanie: zezwalaj użytkownikom na przypinanie widżetów wyświetlanych w Asystenta do programu uruchamiającego. Funkcja przypinania wymaga: Biblioteka rozszerzeń widżetów.
Jak Asystent wyświetla widżety
Użytkownicy mogą wywoływać widżety w Asystencie na 2 sposoby:
- Bezpośrednie żądanie widżetu według nazwy.
- Wypowiedzenie do Asystenta zapytania, które aktywuje intencje wbudowane (BII) lub intencje niestandardowe skonfigurowane dla na potrzeby realizacji widżetu.
Jednoznaczne wywołanie
Aby jawnie wywołać widżety dla dowolnej zainstalowanej aplikacji, użytkownicy mogą poprosić Asystenta na przykład:
- „OK Google, pokaż widżet PrzykładowaAplikacja”.
- „Widżety z aplikacji ExampleApp”.
Asystent wyświetla te widżety wraz z ogólnym wprowadzeniem: „PrzykładowaAplikacja oto widżet”. Asystent natywnie zwraca widżety żądane w w ten sposób bez konieczności wykonywania przez dewelopera aplikacji żadnych działań, ta metoda wywołania wymaga od użytkownika wyraźnej wiedzy na temat widżetu, aby można było go wysłać. Do uprość wykrywanie widżetów, użyj metody realizacji intencji omówionej w w następnej sekcji.
Realizacja intencji
Ułatw znalezienie widżetów, używając ich do
zapytań, których język użytkownik używa w Asystencie. Możesz na przykład zwrócić zapytanie
za każdym razem, gdy użytkownik wywoła GET_EXERCISE_OBSERVATION
BII w Twoim
do fitnessu, pytając: „OK Google, ile mil udało mi się przebiec w tym tygodniu
PrzykładowaAplikacja? Poza uproszczeniem odkrywania treści integrujemy widżety z
Akcje w aplikacji oferują te zalety:
- Dostęp do parametrów: Asystent udostępnia wyodrębnione parametry intencji. z zapytania użytkownika do widżetu, dostosowanych odpowiedzi.
- Niestandardowe wprowadzenie do zamiany tekstu na mowę: możesz dodać ciąg tekstowy do zamiany tekstu na mowę. aby Asystent informował o tym podczas wyświetlania widżetu.
- Przypinanie widżetu: Asystent wyświetla przycisk Dodaj ten widżet obok widżet, dzięki czemu użytkownicy mogą je łatwo przypiąć do programu uruchamiającego.
Wdrażanie realizacji widżetów
Aby wdrożyć realizację widżetów na potrzeby intencji, wykonaj te czynności:
- Zaimplementuj widżet na Androida, wykonując czynności opisane w Utwórz prosty widżet.
- W pliku zasobów
shortcuts.xml
aplikacji dodaj komponent<app-widget>
do możliwości zawierających szczegóły realizacji i tagi BII<parameter>
. Zaktualizuj widżet do obsługi parametrów. - Dodaj wymaganą bibliotekę rozszerzeń widżetów, która umożliwia Asystent przekazuje do widżetów nazwy i parametry BII. Umożliwia też wprowadzenie niestandardowych funkcji zamiany tekstu na mowę i przypinanie widżetów funkcji.
W poniższej sekcji opisano schemat <app-widget>
dla shortcuts.xml
.
Schemat widżetu
Elementy <app-widget>
są zdefiniowane jako zrealizowane w obrębie kategorii
elementy <capability>
w elemencie shortcuts.xml
. Wymagają:
atrybutów, chyba że oznaczono je jako opcjonalne:
Tag „shortcuts.xml” | Zawarte w | Atrybuty |
---|---|---|
<app-widget> |
<capability> |
|
<parameter> |
<app-widget> |
|
<extra> |
<app-widget> |
|
Opis schematu widżetu
<widżet-aplikacji>
Element realizacji widżetu najwyższego poziomu.
Atrybuty:
android:identifier
: identyfikator realizacji. Ta wartość musi musi być niepowtarzalna w całej realizacji<app-widget>
i<intent>
elementów zdefiniowanych w obrębie<capability>
.android:targetClass
: pełna nazwa zajęć związanych z zajęciamiAppWidgetProvider
na do obsługi intencji.
<parametr>
Mapuje parametr BII na wartość intencji <parameter>
. Możesz zdefiniować zero lub
więcej parametrów dla każdego elementu <app-widget>
. Podczas realizacji zamówienia Asystent
przekazuje parametry, aktualizując dodatki instancji widżetu w postaci par klucz-wartość,
w tym formacie:
- Klucz:
android:key
zdefiniowany dla parametru. - Wartość: wartość, którą BII wyodrębnia z poleceń głosowych użytkownika.
Aby uzyskać dostęp do tych dodatkowych treści, zadzwoń pod numer getAppWidgetOptions()
na powiązanym
AppWidgetManager
, który zwraca obiekt Bundle
zawierający nazwę
wyzwalający BII i jego parametry. Zobacz
Wyodrębnij wartości parametrów, aby uzyskać szczegóły.
Więcej informacji o dopasowywaniu parametrów BII znajdziesz tutaj Dane i dopasowanie parametrów
<ekstra>
Opcjonalny tag deklarujący, że używane jest niestandardowe wprowadzenie do zamiany tekstu na mowę ten widżet. Ten tag wymaga następujących wartości atrybutów:
android:name
:"hasTts"
android:value
:"true"
Kod demonstracyjny
Poniższy przykład z pliku shortcuts.xml
przedstawia widżet
dla konfiguracji realizacji zamówienia
Zdolność GET_EXERCISE_OBSERVATION
BII:
<capability android:name="actions.intent.GET_EXERCISE_OBSERVATION">
<app-widget
android:identifier="GET_EXERCISE_OBSERVATION_1"
android:targetClass="com.exampleapp.providers.exampleAppWidgetProvider"
android:targetPackage="com.exampleapp">
<parameter
android:name="exerciseObservation.aboutExercise.name"
android:key="exercisename">
</parameter>
<extra android:name="hasTts" android:value="true"/>
</app-widget>
</capability>
Możesz określić wiele elementów <app-widget>
lub użyć ich kombinacji
<app-widget>
i <intent>
elementów na możliwość. Takie podejście pozwala
zapewniają spersonalizowane wrażenia na podstawie różnych kombinacji parametrów;
udostępniane przez użytkowników. Na przykład jeśli użytkownik nie wskaże lokalizacji wyjazdu
w zapytaniu, możesz skierować tę osobę do aktywności w aplikacji, która pokazuje:
ustawień miejsc odbioru i dostawy. Zobacz
Intencje zastępcze.
o definiowaniu intencji zastępczych.
Wyodrębnianie wartości parametrów
W poniższej przykładowej klasie AppWidgetProvider
funkcja prywatna
updateAppWidget()
służy do wyodrębniania nazwy i parametrów BII z
opcje widżetu Bundle
:
Kotlin
package com.example.exampleapp //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension /** * Implementation of App Widget functionality. */ class MyAppWidget : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { // There might be multiple widgets active, so update all of them for (appWidgetId in appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId) } } private fun updateAppWidget( context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int ) { val widgetText: CharSequence = context.getString(R.string.appwidget_text) // Construct the RemoteViews object val views = RemoteViews(context.packageName, R.layout.my_app_widget) views.setTextViewText(R.id.appwidget_text, widgetText) // Extract the name and parameters of the BII from the widget options val optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId) val bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII) // "actions.intent.CREATE_TAXI_RESERVATION" val params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS) if (params != null && params.containsKey("dropoff")) { val dropoffLocation = params.getString("dropoff") // Build your RemoteViews with the extracted BII parameter // ... } appWidgetManager.updateAppWidget(appWidgetId, views) } }
Java
package com.example.exampleapp; //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension; /** * Implementation of App Widget functionality. */ public class MyAppWidget extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // There might be multiple widgets active, so update all of them for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } } private static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { CharSequence widgetText = context.getString(R.string.appwidget_text); // Construct the RemoteViews object RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_app_widget); views.setTextViewText(R.id.appwidget_text, widgetText); // Extract the name and parameters of the BII from the widget options Bundle optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId); String bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII); // "actions.intent.CREATE_TAXI_RESERVATION" Bundle params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS); if (params != null && params.containsKey(("dropoff"))){ String dropoffLocation = params.getString("dropoff"); // Build your RemoteViews with the extracted BII parameter // ... } appWidgetManager.updateAppWidget(appWidgetId, views); } }
Biblioteka rozszerzeń widżetów
Biblioteka rozszerzeń widżetów akcji w aplikacji wzbogaca widżety komend głosowych w Asystencie. Ta biblioteka pozwala widżetom odbierać ważne informacje o realizacji z procesu BII, w tym BII nazwę użytkownika i parametry intencji wyodrębnione z zapytania.
W tej bibliotece Maven możesz utworzyć własne wprowadzenie do zamiany tekstu na mowę dla każdego widżetu i umożliwi Asystentowi wypowiadanie podsumowania treści wyświetlane użytkownikom. Umożliwia też przypinanie programu uruchamiającego. użytkownicy mogą łatwo zapisywać widżety wyświetlane w Asystencie w Menu z aplikacjami. ekrany.
Zacznij od dodania biblioteki do sekcji zależności
build.gradle
plik modułu aplikacji:
dependencies {
//...
implementation "com.google.assistant.appactions:widgets:0.0.1"
}
Niestandardowe wprowadzenia
Po zaimportowaniu biblioteki rozszerzeń widżetów możesz dodać niestandardową funkcję zamiany tekstu na mowę
wprowadzenie do widżetów. Aby dodać definicję do widżetu
AppWidgetProvider
, otwórz zajęcia w swoim IDE i zaimportuj rozszerzenie Widgets
biblioteka:
Kotlin
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension
Java
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension;
Kotlin
package com.example.exampleapp //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension /** * Implementation of App Widget functionality. */ object MyAppWidget : AppWidgetProvider() { fun updateAppWidget( context: Context?, appWidgetManager: AppWidgetManager, appWidgetId: Int ) { val appActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager) .setResponseSpeech("Hello world") // TTS to be played back to the user .setResponseText("Hello world!") // Response text to be displayed in Assistant .build() // Update widget with TTS appActionsWidgetExtension.updateWidget(appWidgetId) // Update widget UI appWidgetManager.updateAppWidget(appWidgetId, views) } }
Java
package com.example.exampleapp; //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension; /** * Implementation of App Widget functionality. */ public class MyAppWidget extends AppWidgetProvider { static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { AppActionsWidgetExtension appActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager) .setResponseSpeech("Hello world") // TTS to be played back to the user .setResponseText("Hello world!") // Response text to be displayed in Assistant .build(); // Update widget with TTS appActionsWidgetExtension.updateWidget(appWidgetId); // Update widget UI appWidgetManager.updateAppWidget(appWidgetId, views); } }
Rekomendacje dotyczące stylu TTS
Skorzystaj z poniższych zaleceń dotyczących stylu, aby zoptymalizować niestandardowy widżet. wprowadzenia do zamiany tekstu na mowę i wyświetlanych promptów.
Rekomendacja | Zalecane: | – niezalecane |
---|---|---|
SkurczeUżywanie skrótów w promptach zamiany tekstu na mowę. Wiadomości bez dźwięku przy skurczach ruchomy i robotowy, a nie naturalny i konwersacyjny. Wypowiadanie słów Na przykład „nie można” i „nie” może zabrzmieć karanie i surowe. |
ResponseSpeech (TTS)Nie mogę znaleźć rezerwacji. ResponseText Nie mogę znaleźć rezerwacji. |
ResponseSpeech (TTS)Nie mogę znaleźć rezerwacji. ResponseText Nie mogę znaleźć rezerwacji. |
PrzecinkiAby zwiększyć przejrzystość, użyj przecinków szeregowych na listach zawierających co najmniej 3 elementy. Bez przecinka numer seryjny poszczególne pozycje na liście mogą być nieprawidłowo usłyszane lub są odczytywane jako grupy. Na przykład: „żonkile, stokrotki i słoneczniki”. „stoczki i słoneczniki” brzmią tak, jakby zbierały się razem. W przypadku słowa „żonkile, stokrotki i słoneczniki” są wyraźnie oddzielone. |
ResponseSpeech (TTS)Najpopularniejsze są żółte róże, żonkile, stokrotki i słoneczniki. ResponseText Najpopularniejsze są żółte róże, żonkile, stokrotki i słoneczniki. |
ResponseSpeech (TTS)Najpopularniejsze są żółte róże, żonkile, stokrotki i słoneczniki. ResponseText Najpopularniejsze są żółte róże, żonkile, stokrotki i słoneczniki. |
CyfryUżywaj cyfr, a nie tekstu, aby treści wizualne były bardziej czytelne. |
ResponseSpeech (TTS)Twoje ciśnienie wynosi 100 powyżej 80. ResponseText Twoje ciśnienie wynosi 100/80. |
ResponseSpeech (TTS)Twoje ciśnienie wynosi 100/80. ResponseText Twoje ciśnienie wynosi sto ponad osiemdziesiąt. |
SymboleAby treści wizualne były bardziej atrakcyjne, używaj specjalnych symboli zamiast tekstu lub nie rzuca się w oczy. |
ResponseSpeech (TTS)Ostatni zakup kosztował 24,65 zł. ResponseText Ostatni zakup kosztował 24,65 zł. |
ResponseSpeech (TTS)Ostatni zakup kosztował 24 złote i 65 gr. ResponseText Ostatni zakup kosztował 24 złote i 65 gr. |
Unikaj łakociDzięki temu odpowiedzi mogą wydawać się oddalone i oficjalne. Porzuć je i zachowaj w przyjazny i nieformalny sposób. |
ResponseSpeech (TTS)Twoje zamówienie zostało dostarczone. ResponseText Twoje zamówienie zostało dostarczone. |
ResponseSpeech (TTS)Mogę Ci to powiedzieć. Twoje zamówienie zostało dostarczone. ResponseText Mogę Ci to powiedzieć. Twoje zamówienie zostało dostarczone. |
Unikaj wykrzyknikówMożna je postrzegać jako krzyki. |
ResponseSpeech (TTS)Udało Ci się dziś przebiec 2,5 mili. ResponseText Udało Ci się dziś przebiec 2,5 mili. |
ResponseSpeech (TTS)Udało Ci się dziś przebiec 2,5 mili! ResponseText Udało Ci się dziś przebiec 2,5 mili! |
GodzinaUżyj cyfr: „5:15”, zamiast „piętnaście piętnastu” albo „kwartał po piątej”. W przypadku zegara 12-godzinnego użyj AM lub PM. |
ResponseSpeech (TTS)Twoja dostawa powinna dotrzeć do 8:15. ResponseText Twoja przesyłka powinna dotrzeć do 8:15. |
ResponseSpeech (TTS)Dostawa powinna dotrzeć dzisiaj po 15 minutach po 8 rano. ResponseText Dostawa powinna dotrzeć dzisiaj po 15 minutach po 8 rano. |
Nie włączaj się do monologówPodaj informacje, ale odpowiedzi powinny być zwięzłe. Nie daj się wciągnąć w tętniące życiem osoby. szczegółów bez wyraźnej korzyści dla użytkownika. |
ResponseSpeech (TTS)W zeszłym miesiącu zużyto 159 godzin energii. ResponseText W zeszłym miesiącu zużyto 159 godzin energii. |
ResponseSpeech (TTS)Oszczędzanie energii jest bardzo ważne dla planety i środowiska. Zeszły miesiąc zostało zużyte 159 godzin energii. W tym miesiącu udało Ci się wykorzystać 58 godzin energii. ResponseText Oszczędzanie energii jest bardzo ważne dla planety i środowiska. Zeszły miesiąc zostało zużyte 159 godzin energii. W tym miesiącu udało Ci się wykorzystać 58 godzin energii. |
Używaj krótkich, prostych słówZwykły język ma największą atrakcyjność, dzięki czemu jest przystępny ludzi z różnych środowisk. |
ResponseSpeech (TTS)Twój ostatni odczyt cukru we krwi to 126. ResponseText Ostatnie stężenie cukru we krwi to 126 mg/dl. |
ResponseSpeech (TTS)Poziom glukozy we krwi przedostatnim wynosił 126. ResponseText Poziom glukozy we krwi przedostatnim wynosił 126. |
Przypinanie programu uruchamiającego
W bibliotece rozszerzeń widżetów można wyświetlać przycisk Dodaj ten widżet
za pomocą widżetu w Asystencie. Aby włączyć przypinanie, dodaj ten odbiornik
definicja na AndroidManifest.xml
:
<application>
<receiver android:name="com.google.assistant.appactions.widgets.pinappwidget.PinAppWidgetBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.google.assistant.appactions.widgets.COMPLETE_PIN_APP_WIDGET" />
</intent-filter>
</receiver>
<service
android:name=
"com.google.assistant.appactions.widgets.pinappwidget.PinAppWidgetService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action
android:name="com.google.assistant.appactions.widgets.PIN_APP_WIDGET" />
</intent-filter>
</service>
</application>
Dostępność zasobów reklamowych
BII obsługują wbudowane zasoby reklamowe lub internetowe zasoby reklamowe, zasobów reklamowych w realizacji Twoich widżetów.
Wbudowane zasoby reklamowe
Poniższy kod z przykładowego pliku shortcuts.xml
przedstawia
Możliwości START_EXERCISE
BII
skonfigurowana pod kątem realizacji wbudowanych zasobów reklamowych i widżetów:
<capability
android:name="actions.intent.START_EXERCISE">
<app-widget
android:identifier="START_EXERCISE_1"
android:targetClass="com.example.exampleapp.StartExerciseAppWidgetProvider">
<parameter
android:name="exercise.name"
android:key="exerciseName"
app:shortcutMatchRequired="true">
</parameter>
</app-widget>
</capability>
<shortcut android:shortcutId="RunningShortcut">
<intent
android:action="android.intent.action.VIEW"
android:targetClass="com.example.exampleapp.StartExcerciseActivity" />
<capability-binding
android:capability="actions.intent.START_EXERCISE"
android:parameter="exercise.name"
android:value="running;runs" />
</shortcut>
W poprzednim przykładzie, gdy użytkownik aktywuje tę funkcję, prosząc o to
Asystenta, „Zacznij biegać z przykładową aplikacją”, pakiet opcji dla operatora
Realizacja <app-widget>
zawiera tę parę klucz-wartość:
- Klucz =
“exerciseName”
- Wartość =
“RunningShortcut”
Zasoby reklamowe w internecie
Poniższy kod z przykładowego pliku shortcuts.xml
pokazuje funkcję
włączona na potrzeby realizacji zasobów reklamowych w internecie i widżetów:
<shortcuts>
<capability
android:name="actions.intent.START_EXERCISE">
<app-widget
android:identifier="START_EXERCISE_1"
android:targetClass="com.example.exampleapp.CreateTaxiAppWidgetProvider">
<parameter
android:name="exercise.name"
android:key="exerciseName"
android:mimeType="text/*">
<data android:pathPattern="https://exampleapp.com/exercise/.*" />
</parameter>
</app-widget>
</capability>
</shortcuts>
Testuj działania w aplikacji
Użyj narzędzia App Actions Test Tool, które jest funkcją wtyczki Asystenta Google do Android Studio – umożliwia testowanie widżetów na urządzeniu fizycznym lub wirtualnym. Aby użyć funkcji w narzędziu testowym, wykonaj te czynności:
- Połącz urządzenie testowe z uruchomioną aplikacją.
- W Android Studio wybierz Narzędzia > Działania w aplikacji > Test działań w aplikacji .
- Kliknij Utwórz podgląd.
- Korzystając z Android Studio, uruchom aplikację na urządzeniu testowym.
- Aby przetestować działanie w aplikacji, użyj aplikacji Asystent na urządzeniu testowym. Dla: Możesz na przykład powiedzieć „OK Google, ile kilometrów udało mi się przebiec w tym tygodniu w aplikacji ExampleApp?”.
- Obserwuj działanie aplikacji lub użyj debugera Android Studio, aby: Sprawdź oczekiwane działanie.
Wytyczne dotyczące jakości
W tej sekcji omawiamy kluczowe wymagania i sprawdzone metody integrujesz akcje w aplikacji z widżetami.
Zawartość widżetów
- (Wymagane) – nie wyświetlaj reklam w widżetach.
- Całkowicie skoncentruj treść widżetu na spełnieniu intencji. Przeciwwskazania spróbuj zrealizować kilka intencji za pomocą jednego widżetu lub dodaj nieistotne treści.
Uwierzytelnienie
- (Wymagane) Jeśli do zakończenia ścieżki użytkownika wymagane jest uwierzytelnianie, wyświetlają widżet z informacją, że użytkownik musi kontynuować aplikację. Wbudowane uwierzytelnianie użytkowników w Asystencie Google nie jest obsługiwane w przypadku aplikacji Działania.
- Jeśli użytkownicy zezwalają aplikacji na wyświetlanie danych za pomocą widżetów, możesz zwrócić widżet błędu w trakcie działania dla nieautoryzowanych użytkowników.
Intencje zastępcze
(Wymagane) W tabeli
shortcuts.xml
zawsze podawaj wartość zastępczą<intent>
oprócz realizacji widżetu dla danej możliwości. Intencja kreacji zastępczej to element<intent>
, który nie jest wymagany.<parameter>
wartości.Dzięki temu Asystent może wykonać działanie, zapytanie użytkownika nie zawiera parametrów wymaganych przez inną realizację elementów zdefiniowanych w możliwości. Wyjątkiem jest sytuacja, w której parametry wymagane dla tej funkcji, w którym to przypadku dostępny jest tylko widżet i niezbędna jest realizacja zamówień.
Użyj intencji zastępczej, aby otworzyć aplikację na odpowiednim ekranie, nie ekran główny.
Poniższy kod z przykładowego pliku shortcuts.xml
przedstawia
<capability>
z wartością zastępczą <intent>
obsługującą podstawową
Realizacja zamówienia <app-widget>
:
<shortcuts>
<capability
android:name="actions.intent.CREATE_TAXI_RESERVATION">
<!-- Widget with required parameter, specified using the "android:required" attribute. -->
<app-widget
android:identifier="CREATE_TAXI_RESERVATION_1"
android:targetClass="com.example.myapplication.CreateTaxiAppWidgetProvider">
<parameter
android:name="taxiReservation.dropoffLocation.name"
android:key="dropoff"
android:required="true">
</parameter>
</app-widget>
<!-- Fallback intent with no parameters required to successfully execute. -->
<intent
android:identifier="CREATE_TAXI_RESERVATION_3"
android:action="myapplication.intent.CREATE_TAXI_RESERVATION_1"
android:targetClass="com.example.myapplication.TaxiReservationActivity">
</intent>
</capability>
</shortcuts>
Ujawnianie danych w Google Play
Ta sekcja zawiera listę danych użytkowników zebranych przez najnowszą wersję Biblioteka rozszerzeń widżetów.
Ten pakiet SDK wysyła dostarczone przez dewelopera odpowiedzi zamiany tekstu na mowę, które są wypowiadane przez Asystenta Google za pomocą mowy Asystenta. technologii. Te informacje nie są przechowywane przez Google.
Działania w aplikacji mogą też zbierać metadane aplikacji klienckiej w tych celach:
- monitorowanie wskaźników rozpowszechnienia różnych wersji pakietu SDK;
- Aby mierzyć wykorzystanie funkcji pakietu SDK w aplikacjach.