Untuk banyak intent, respons terbaiknya adalah memberikan jawaban sederhana, konfirmasi singkat, atau pengalaman interaktif cepat kepada pengguna. Anda dapat menampilkan widget aplikasi Android di Asisten Google untuk memenuhi jenis intent ini.
Panduan ini membahas cara memenuhi kueri pengguna Asisten menggunakan widget dan cara meningkatkan pengalaman widget untuk Asisten dengan library Ekstensi Widget Action Aplikasi.
Manfaat
Widget adalah tampilan aplikasi mini yang dapat disematkan di platform Android, seperti peluncur atau layar kunci. Dengan Action Aplikasi, Anda meningkatkan dampak widget dengan membuatnya memenuhi syarat untuk ditampilkan di Asisten:
- Penemuan: Menampilkan widget secara proaktif sebagai respons terhadap kueri bahasa alami pengguna.
- Interaksi: Menampilkan widget dalam konteks handsfree, seperti saat Asisten memberikan hasil personal di layar kunci, dan di Android Auto.
- Retensi: Izinkan pengguna menyematkan widget yang ditampilkan di Asisten ke peluncurnya. Penyematan fungsi memerlukan library Ekstensi Widget.
Cara Asisten menampilkan widget
Ada dua cara bagi pengguna untuk mengaktifkan widget di Asisten:
- Meminta widget secara eksplisit berdasarkan nama.
- Mengucapkan kueri ke Asisten yang memicu intent bawaan (BII) atau intent kustom yang dikonfigurasi untuk fulfillment widget.
Panggilan eksplisit
Untuk memanggil widget secara eksplisit untuk aplikasi terinstal apa pun, pengguna dapat menanyakan hal-hal kepada Asisten seperti:
- "Ok Google, tampilkan widget ExampleApp".
- "Widget dari ExampleApp".
Asisten menampilkan widget ini dengan pengantar generik: "ExampleApp berkata, ini widget-nya." Meskipun Asisten menampilkan widget yang diminta dengan cara ini secara mudah dari developer aplikasi, metode pemanggilan ini mengharuskan pengguna memiliki pengetahuan eksplisit tentang widget agar dapat memintanya. Untuk menyederhanakan penemuan widget, gunakan metode fulfillment intent yang dijelaskan di bagian berikut.
Fulfillment intent
Buat widget Anda lebih mudah ditemukan dengan menggunakannya untuk memenuhi kueri bahasa alami
yang dilakukan pengguna di Asisten. Misalnya, Anda dapat menampilkan
widget setiap kali pengguna memicu GET_EXERCISE_OBSERVATION
BII di
aplikasi kebugaran dengan bertanya, "Ok Google, berapa mil yang harus saya tempuh minggu ini di
ExampleApp?" Selain menyederhanakan penemuan, mengintegrasikan widget dengan
Action Aplikasi menawarkan keuntungan berikut:
- Akses parameter: Asisten memberikan parameter intent yang diekstrak dari kueri pengguna ke widget Anda, memungkinkan respons yang disesuaikan.
- Pengantar TTS kustom: Anda dapat memberikan string text-to-speech (TTS) untuk diumumkan Asisten saat menampilkan widget.
- Penyematan widget: Asisten menampilkan tombol Tambahkan widget ini di dekat widget Anda, yang memungkinkan pengguna menyematkan widget Anda ke peluncurnya dengan mudah.
Menerapkan fulfillment widget
Untuk menerapkan fulfillment widget untuk intent Anda, ikuti langkah-langkah berikut:
- Terapkan widget Android dengan mengikuti langkah-langkah yang dijelaskan dalam Membuat widget sederhana.
- Di file resource
shortcuts.xml
aplikasi Anda, tambahkan elemen<app-widget>
ke kemampuan yang berisi detail fulfillment dan tag<parameter>
BII. Update widget Anda untuk menangani parameter. - Tambahkan library Ekstensi Widget yang diperlukan dan memungkinkan Asisten meneruskan nama dan parameter BII ke widget Anda. Library ini juga mengaktifkan pengantar TTS kustom dan fungsi penyematan widget.
Bagian berikut menjelaskan skema <app-widget>
untuk shortcuts.xml
.
Skema widget
Elemen <app-widget>
ditentukan sebagai fulfillment dalam elemen
<capability>
di shortcuts.xml
. Atribut ini memerlukan atribut
berikut, kecuali jika dinyatakan sebagai opsional:
Tag `shortcuts.xml` | Ada dalam | Atribut |
---|---|---|
<app-widget> |
<capability> |
|
<parameter> |
<app-widget> |
|
<extra> |
<app-widget> |
|
Deskripsi skema widget
<app-widget>
Elemen fulfillment widget tingkat atas.
Atribut:
android:identifier
: ID untuk fulfillment ini. Nilai ini harus unik di seluruh elemen fulfillment<app-widget>
dan<intent>
yang ditentukan dalam<capability>
.android:targetClass
: Nama class lengkapAppWidgetProvider
untuk menangani intent.
<parameter>
Memetakan parameter BII ke nilai <parameter>
intent. Anda dapat menentukan nol atau
beberapa parameter untuk setiap elemen <app-widget>
. Selama fulfillment, Asisten
meneruskan parameter dengan mengupdate tambahan untuk instance widget sebagai key-value pair
dengan format berikut:
- Kunci:
android:key
yang ditentukan untuk parameter. - Nilai: nilai yang diekstrak BII dari input suara pengguna.
Anda mengakses tambahan ini dengan memanggil getAppWidgetOptions()
pada objek
AppWidgetManager
terkait yang menampilkan Bundle
yang berisi nama
Bill pemicu dan parameternya. Lihat bagian
Mengekstrak parameter value untuk mengetahui detailnya.
Untuk informasi lebih lanjut tentang pencocokan parameter BII, lihat Data dan pencocokan parameter.
<extra>
Tag opsional yang mendeklarasikan bahwa pengantar TTS kustom digunakan untuk widget ini. Tag ini memerlukan nilai atribut berikut:
android:name
:"hasTts"
android:value
:"true"
Kode contoh
Contoh berikut dari file shortcuts.xml
menunjukkan konfigurasi
fulfillment widget untuk
kemampuan BII GET_EXERCISE_OBSERVATION
:
<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>
Anda dapat menentukan beberapa elemen <app-widget>
atau menggunakan kombinasi elemen
<app-widget>
dan <intent>
per kemampuan. Pendekatan ini memungkinkan Anda
memberikan pengalaman yang disesuaikan berdasarkan berbagai kombinasi parameter
yang diberikan oleh pengguna. Misalnya, jika pengguna tidak menentukan lokasi penjemputan
dalam kuerinya, Anda dapat mengarahkan mereka ke aktivitas di aplikasi Anda yang menampilkan
opsi untuk menetapkan lokasi penjemputan dan penurunan. Lihat
bagian Intent penggantian untuk informasi selengkapnya
tentang cara menentukan intent penggantian.
Mengekstrak parameter value
Pada contoh class AppWidgetProvider
berikut, fungsi pribadi
updateAppWidget()
digunakan untuk mengekstrak nama dan parameter BII dari
opsi widget 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); } }
Library Ekstensi Widget
Library Ekstensi Widget Action Aplikasi meningkatkan (kualitas) widget Anda untuk pengalaman Asisten Voice-forward. Library ini memungkinkan widget Anda menerima informasi fulfillment penting dari BII pemicu, termasuk nama BII dan parameter intent apa pun yang diekstrak dari kueri pengguna.
Library Maven ini memungkinkan Anda menyediakan pengantar text-to-speech (TTS) kustom untuk setiap widget, yang memungkinkan Asisten mengumumkan ringkasan konten yang dirender secara visual kepada pengguna. Ini juga mengaktifkan penyematan peluncur, yang memudahkan pengguna untuk menyimpan widget yang ditampilkan di Asisten ke layar peluncur mereka.
Mulai dengan menambahkan library ke bagian dependensi
file build.gradle
untuk modul aplikasi Anda:
dependencies {
//...
implementation "com.google.assistant.appactions:widgets:0.0.1"
}
Pengantar kustom
Setelah mengimpor library Ekstensi Widget, Anda dapat memberikan pengantar TTS
kustom untuk widget Anda. Untuk menambahkan definisi Anda ke AppWidgetProvider
widget, buka class di IDE dan impor library Ekstensi
Widget:
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); } }
Rekomendasi gaya TTS
Gunakan rekomendasi gaya berikut guna mengoptimalkan pengantar widget kustom Anda untuk TTS dan perintah yang ditampilkan.
Rekomendasi | Direkomendasikan | Tidak direkomendasikan |
---|---|---|
KontraksiGunakan kontraksi dalam perintah TTS. Pesan tanpa kontraksi terdengar kaku dan seperti robot, tidak natural dan akrab. Mengucapkan kata-kata seperti "tidak dapat" dan "tidak" bisa terdengar seolah menghakimi dan kasar. |
ResponseSpeech (TTS)Maaf, saya tidak dapat menemukan reservasi. ResponseText Maaf, saya tidak dapat menemukan reservasi. |
ResponseSpeech (TTS)Maaf, saya tidak dapat menemukan reservasi. ResponseText Maaf, saya tidak dapat menemukan reservasi. |
KomaTingkatkan kejelasan dengan menggunakan koma serial dalam daftar yang berisi tiga item atau lebih. Tanpa koma serial, setiap item dalam daftar mungkin salah didengar atau dibaca sebagai grup. Misalnya, dalam "dafodil, aster dan bunga matahari", “aster dan bunga matahari” terdengar seperti berada dalam satu kumpulan. Dalam "dafodil, aster, dan bunga matahari", ketiganya jelas terpisah. |
ResponseSpeech (TTS)Bunga paling populer adalah mawar kuning, daffodil, daisy, dan bunga matahari. ResponseText Bunga paling populer adalah mawar kuning, daffodil, daisy, dan bunga matahari. |
ResponseSpeech (TTS)Bunga paling populer adalah mawar kuning, daffodil, daisy dan bunga matahari. ResponseText Bunga paling populer adalah mawar kuning, daffodil, daisy dan bunga matahari. |
AngkaGunakan angka, bukan teks, untuk membuat konten visual lebih mudah dilihat. |
ResponseSpeech (TTS)Tekanan darah Anda 100 per 80. ResponseText Tekanan darah Anda 100/80. |
ResponseSpeech (TTS)Tekanan darah Anda 100/80. ResponseText Tekanan darah Anda seratus per delapan puluh. |
SimbolGunakan simbol khusus, bukan teks, untuk membuat konten visual lebih mudah dilihat. |
ResponseSpeech (TTS)Pembelian terakhir Anda adalah $24,65. ResponseText Pembelian terakhir Anda adalah $24,65. |
ResponseSpeech (TTS)Pembelian terakhir Anda adalah dua puluh empat dolar enam puluh lima sen. ResponseText Pembelian terakhir Anda adalah dua puluh empat dolar enam puluh lima sen. |
Hindari bentuk formalBentuk formal membuat respons terasa tidak ramah dan kaku. Jangan gunakan bentuk formal dan pertahankan percakapan tetap ramah dan natural. |
ResponseSpeech (TTS)Pesanan Anda telah dikirim. ResponseText Pesanan Anda telah dikirim. |
ResponseSpeech (TTS)Baik, saya tahu. Pesanan Anda sudah dikirim. ResponseText Baik, saya tahu. Pesanan Anda sudah dikirim. |
Hindari tanda seruTanda seru dapat dianggap seperti berteriak. |
ResponseSpeech (TTS)Anda berlari sejauh 1,5 mil hari ini. ResponseText Anda berlari sejauh 1,5 mil hari ini. |
ResponseSpeech (TTS)Anda berlari sejauh 1,5 mil hari ini! ResponseText Anda berlari sejauh 1,5 mil hari ini! |
WaktuGunakan angka: "5.15", bukan "lima-lima belas" atau "lima seperempat". Untuk model waktu 12 jam, gunakan Pagi/Siang atau Sore/Malam. |
ResponseSpeech (TTS)Pengiriman akan tiba sebelum pukul 08.15 pagi. ResponseText Pengiriman akan tiba sebelum pukul 08.15 pagi. |
ResponseSpeech (TTS)Pengiriman akan tiba sebelum pukul 8 lebih 15 di pagi hari ini. ResponseText Pengiriman akan tiba sebelum pukul 8 lebih 15 di pagi hari ini. |
Jangan gunakan monologBerikan informasi yang informatif, tetapi usahakan agar respons tetap ringkas. Jangan langsung ke detail berat tanpa manfaat yang jelas bagi pengguna. |
ResponseSpeech (TTS)Bulan lalu Anda menggunakan listrik selama 159 jam. ResponseText Bulan lalu Anda menggunakan listrik selama 159 jam. |
ResponseSpeech (TTS)Hemat listrik sangat penting bagi planet dan lingkungan. Bulan lalu, Anda menggunakan listrik selama 159 jam. Untuk bulan ini, Anda telah menggunakan listrik selama 58 jam. ResponseText Hemat listrik sangat penting bagi planet dan lingkungan. Bulan lalu, Anda menggunakan listrik selama 159 jam. Untuk bulan ini, Anda telah menggunakan listrik selama 58 jam. |
Gunakan kata yang singkat dan sederhanaBahasa yang singkat dan sederhana dapat menjangkau banyak orang sehingga dapat diakses oleh orang dari semua latar belakang. |
ResponseSpeech (TTS)Hasil pengukuran gula darah terakhir Anda adalah 126. ResponseText Hasil pengukuran gula darah terakhir Anda adalah 126 mg/dL. |
ResponseSpeech (TTS)Kadar glukosa darah praakhir adalah 126. ResponseText Kadar glukosa darah praakhir adalah 126. |
Penyematan peluncur
Library Ekstensi Widget memungkinkan tombol Tambahkan widget ini ditampilkan
dengan widget Anda di Asisten. Untuk mengaktifkan penyematan, tambahkan definisi penerima
berikut ke 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>
Ketersediaan inventaris
BII yang mendukung inventaris inline atau inventaris web dapat memperluas inventaris ini ke fulfillment widget Anda.
Inventaris inline
Kode berikut dari contoh file shortcuts.xml
menunjukkan
kemampuan BII START_EXERCISE
yang dikonfigurasi untuk inventaris inline dan fulfillment widget:
<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>
Pada contoh sebelumnya, saat pengguna memicu kemampuan ini dengan meminta
Asisten, “Mulai jalankan dengan ExampleApp”, paket opsi untuk
fulfillment <app-widget>
berisi key-value pair berikut:
- Kunci =
“exerciseName”
- Value =
“RunningShortcut”
Inventaris web
Kode berikut dari contoh file shortcuts.xml
menunjukkan kemampuan
yang diaktifkan untuk inventaris web dan fulfillment widget:
<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>
Menguji Action Aplikasi
Gunakan Alat Uji Action Aplikasi, fitur dari plugin Asisten Google untuk Android Studio, untuk menguji widget pada perangkat fisik atau virtual. Untuk menggunakan alat ini, ikuti langkah-langkah berikut:
- Hubungkan perangkat pengujian dengan aplikasi yang sedang berjalan.
- Di Android Studio, buka Tools > App Actions > App Actions Test Tool.
- Klik Create preview.
- Menggunakan Android Studio, jalankan aplikasi Anda di perangkat pengujian.
- Gunakan aplikasi Asisten di perangkat pengujian untuk menguji Action Aplikasi Anda. Misalnya, Anda dapat mengucapkan sesuatu seperti "Ok Google, berapa mil yang telah saya tempuh minggu ini di ExampleApp?"
- Amati perilaku aplikasi Anda, atau gunakan debugger Android Studio, untuk memverifikasi hasil tindakan yang diinginkan.
Pedoman kualitas
Bagian ini memperjelas persyaratan utama dan praktik terbaik saat Anda mengintegrasikan Action Aplikasi dengan widget.
Konten dalam widget
- (Wajib) Jangan tampilkan iklan di widget Anda.
- Fokuskan konten widget sepenuhnya untuk memenuhi intent. Jangan mencoba memenuhi beberapa intent dengan satu widget atau menambahkan konten yang tidak relevan.
Menangani autentikasi
- (Wajib) Jika autentikasi pengguna diperlukan untuk menyelesaikan alur pengguna, tampilkan widget yang menjelaskan bahwa pengguna perlu melanjutkan penggunaan aplikasi. Autentikasi pengguna inline di Asisten Google tidak didukung untuk Action Aplikasi.
- Jika pengguna mengizinkan aplikasi Anda menampilkan data menggunakan widget, Anda dapat menampilkan widget error saat runtime untuk pengguna yang tidak diberi otorisasi.
Intent pengganti
(Wajib) Di
shortcuts.xml
, selalu berikan penggantian<intent>
selain fulfillment widget Anda untuk kemampuan tertentu. Intent penggantian adalah elemen<intent>
tanpa nilai<parameter>
yang diperlukan.Hal ini memungkinkan Asisten untuk memenuhi tindakan saat kueri pengguna tidak berisi parameter yang diperlukan oleh elemen fulfillment lainnya yang ditentukan dalam kemampuan. Pengecualian untuk hal ini adalah saat tidak ada parameter yang diperlukan untuk kemampuan tersebut, dalam hal ini hanya fulfillment widget yang diperlukan.
Gunakan intent penggantian untuk membuka aplikasi ke layar yang relevan, bukan layar utama.
Kode berikut dari contoh file shortcuts.xml
menunjukkan
<capability>
dengan <intent>
penggantian yang mendukung fulfillment
<app-widget>
utama:
<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>
Pengungkapan data Google Play
Bagian ini mencantumkan data pengguna akhir yang dikumpulkan oleh library Ekstensi Widget versi terbaru.
SDK ini mengirimkan respons text-to-speech (TTS) yang diberikan developer yang diumumkan kepada pengguna oleh Asisten Google menggunakan teknologi ucapan Asisten. Informasi ini tidak disimpan oleh Google.
Action aplikasi juga dapat mengumpulkan metadata aplikasi klien untuk tujuan berikut:
- Untuk memantau berbagai tingkat adopsi versi SDK.
- Untuk mengukur penggunaan fitur SDK di seluruh aplikasi.