Mengintegrasikan widget Android dengan Asisten Google

1. Ringkasan

Pada codelab Action Aplikasi yang pertama, Anda telah mempelajari cara memperluas Asisten Google ke contoh aplikasi kebugaran dengan menerapkan intent bawaan (BII) dari kategori BII Kesehatan dan Kebugaran.

Dengan Action Aplikasi, pengguna dapat meluncurkan langsung fitur aplikasi tertentu dari Asisten dengan mengucapkan hal-hal seperti, "Ok Google, mulai sesi lari di ExampleApp". Selain meluncurkan aplikasi, Asisten dapat menampilkan widget Android interaktif kepada pengguna untuk memenuhi permintaan BII yang memenuhi syarat.

Layar menunjukkan Asisten menampilkan widget sebagai respons atas kueri pengguna yang memicu kemampuan BII GET_EXERCISE_OBSERVATION aplikasi.

Yang akan Anda buat

Dalam codelab ini, Anda akan mempelajari cara menampilkan widget Android untuk memenuhi permintaan pengguna Asisten. Anda juga akan mempelajari cara:

  • Menggunakan parameter BII untuk mempersonalisasi widget.
  • Memberikan pengantar text-to-speech (TTS) di Asisten untuk widget Anda.
  • Menggunakan Referensi intent bawaan untuk menentukan BII yang mendukung fulfillment widget.

Prasyarat

Sebelum melanjutkan, pastikan lingkungan pengembangan Anda sudah siap untuk pengembangan Action Aplikasi. Lingkungan ini harus memiliki:

  • Terminal untuk menjalankan perintah shell, dengan git terinstal.
  • Rilis stabil terbaru dari Android Studio.
  • Perangkat Android fisik atau virtual dengan akses Internet.
  • Akun Google yang login ke Android Studio, aplikasi Google, dan aplikasi Asisten Google.

Jika Anda menggunakan perangkat fisik, hubungkan perangkat ke mesin pengembangan lokal Anda.

2. Memahami cara kerjanya

Asisten Google menggunakan natural language understanding (NLU) untuk membaca permintaan pengguna dan mencocokkannya dengan intent bawaan (BII) Asisten. Asisten kemudian memetakan intent ke kemampuannya (yang menerapkan BII), yang Anda daftarkan untuk intent tersebut di aplikasi Anda. Terakhir, Asisten memenuhi permintaan pengguna dengan menampilkan widget Android yang dihasilkan aplikasi Anda menggunakan detail yang ditemukan dalam kemampuannya.

Dalam codelab ini, Anda menentukan kemampuan yang mendaftarkan dukungan untuk BII GET_EXERCISE_OBSERVATION. Dalam kemampuan ini, Anda menginstruksikan Asisten untuk menghasilkan intent Android ke class widget FitActions guna memenuhi permintaan BII ini. Anda memperbarui class ini untuk menghasilkan widget yang dipersonalisasi bagi Asisten agar dapat ditampilkan kepada pengguna, dan pengantar TTS untuk diumumkan oleh Asisten.

Diagram berikut menunjukkan alur ini:

Diagram alur menunjukkan fulfillment widget Asisten.

Widget FitActions

Aplikasi contoh FitActions berisi widget informasi olahraga yang dapat ditambahkan pengguna ke layar utama. Widget ini sangat cocok untuk memenuhi kueri pengguna yang memicu BII GET_EXERCISE_OBSERVATION.

Cara kerja widget

Saat pengguna menambahkan widget ke layar utama, widget tersebut akan mengirim ping ke Penerima Siaran perangkat. Layanan ini mengambil informasi tentang widget dari definisi penerima widget dalam resource AndroidManifest.xml aplikasi. Informasi ini lalu digunakan untuk menghasilkan objek RemoteViews yang mewakili widget.

Aplikasi contoh menentukan widgets.StatsWidgetProvider penerima, yang sesuai dengan class StatsWidgetProvider:

<!-- app/src/main/AndroidManifest.xml -->

<receiver
  android:name=".widgets.StatsWidgetProvider"
  android:exported="false">
  <intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
  </intent-filter>
  <meta-data
    android:name="android.appwidget.provider"
    android:resource="@xml/stats_widget" />
</receiver>

Class StatsWidgetProvider, StatsWidgetProvider.kt, mengelola alur pembuatan objek StatsWidget. Cakupan tugasnya adalah:

  • Membuat instance widget dan mengisinya dengan data olahraga dari database aplikasi.
  • Memformat data olahraga agar lebih mudah dibaca, dengan formatDataAndSetWidget().
  • Memberikan nilai default jika data olahraga tidak tersedia, menggunakan setNoActivityDataWidget().

Menambahkan dukungan Asisten

Dalam codelab ini, Anda akan memperbarui aplikasi contoh untuk menangani fungsi Action Aplikasi. Perubahan ini mencakup:

  1. Mengonfigurasi kemampuan BII GET_EXERCISE_OBSERVATION untuk menampilkan instance objek StatsWidget.
  2. Memperbarui class StatsWidget untuk menggunakan fitur Action Aplikasi seperti:
    • Dengan menggunakan parameter BII, pengguna dapat melihat statistik olahraga tertentu dengan menanyakan hal-hal seperti, "Ok Google, tampilkan statistik lari saya di ExampleApp".
    • Menyediakan string pengantar TTS.
    • Mengelola kasus khusus, seperti saat kueri pengguna tidak menyertakan parameter jenis olahraga.

3. Menyiapkan lingkungan pengembangan

Mendownload file dasar

Jalankan perintah ini untuk meng-clone repositori GitHub aplikasi contoh:

git clone --branch start-widget-codelab https://github.com/actions-on-google/appactions-fitness-kotlin.git

Setelah meng-clone repositori, ikuti langkah-langkah berikut untuk membukanya di Android Studio:

  1. Dalam dialog Welcome to Android Studio, klik Import project.
  2. Cari dan pilih folder tempat Anda meng-clone repositori.

Untuk melihat versi aplikasi yang mewakili codelab yang sudah selesai, clone repo aplikasi contoh menggunakan tanda --branch master.

Memperbarui ID aplikasi Android

Memperbarui ID aplikasi akan mengidentifikasi aplikasi di perangkat pengujian Anda secara unik dan menghindari error "Nama paket duplikat" jika aplikasi diupload ke Konsol Play. Untuk memperbarui ID aplikasi, buka app/build.gradle:

android {
...
  defaultConfig {
    applicationId "com.MYUNIQUENAME.android.fitactions"
    ...
  }
}

Ganti "MYUNIQUENAME" di kolom applicationId menjadi sesuatu yang unik bagi Anda.

Menginstal plugin pengujian

Plugin Asisten Google memungkinkan Anda menguji Action Aplikasi di perangkat pengujian. Cara kerjanya adalah dengan mengirimkan informasi ke Asisten melalui aplikasi Google di perangkat Android Anda. Jika Anda belum memiliki plugin tersebut, instal dengan langkah-langkah berikut:

  1. Buka File > Settings (Android Studio > Preferences di MacOS).
  2. Di bagian Plugin, buka Marketplace dan telusuri "Google Assistant". Anda juga dapat mendownload dan menginstal alat pengujian secara manual.
  3. Instal alat tersebut, lalu mulai ulang Android Studio.

Menguji aplikasi di perangkat Anda

Sebelum membuat lebih banyak perubahan pada aplikasi, sebaiknya Anda mengetahui apa saja yang dapat dilakukan aplikasi contoh.

Jalankan aplikasi di perangkat pengujian Anda:

  1. Di Android Studio, pilih perangkat fisik atau virtual Anda lalu pilih Run > Run app atau klik RunJalankan ikon aplikasi di Android Studio. di toolbar.
  2. Tekan lama tombol Home untuk menyiapkan Asisten dan memastikannya berfungsi. Anda harus login ke Asisten di perangkat jika belum melakukannya.

Untuk informasi selengkapnya tentang perangkat virtual Android, lihat Membuat dan mengelola perangkat virtual.

Jelajahi aplikasi secara singkat untuk melihat apa yang dapat dilakukannya. Aplikasi mengisi otomatis 10 aktivitas olahraga dan menampilkan informasi ini pada tampilan pertama.

Mencoba widget yang ada

  1. Ketuk tombol Home untuk membuka layar utama perangkat pengujian.
  2. Tekan lama ruang kosong di layar utama, lalu pilih Widgets.
  3. Scroll ke bawah daftar widget ke FitActions.
  4. Tekan lama ikon FitActions dan letakkan widgetnya di layar utama.

Screenshot menampilkan widget FitActions di layar utama perangkat.

4. Menambahkan Action Aplikasi

Pada langkah ini, Anda menambahkan kemampuan BII GET_EXERCISE_OBSERVATION. Untuk melakukannya, tambahkan elemen capability baru di shortcuts.xml. Kemampuan ini menentukan bagaimana kemampuan dipicu, bagaimana parameter BII digunakan, dan intent Android mana yang akan dipanggil untuk memenuhi permintaan.

  1. Tambahkan elemen capability baru ke resource shortcuts.xml project contoh dengan konfigurasi ini:
    <!-- fitnessactions/app/src/main/res/xml/shortcuts.xml -->
    
    <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION">
      <app-widget
        android:identifier="GET_EXERCISE_OBSERVATION"
        android:targetClass="com.devrel.android.fitactions.widgets.StatsWidgetProvider"
        android:targetPackage="PUT_YOUR_APPLICATION_ID_HERE">
        <parameter
          android:name="exerciseObservation.aboutExercise.name"
          android:key="aboutExerciseName"
          android:required="true">
        </parameter>
        <extra android:name="hasTts" android:value="true"/>
      </app-widget>
      <!-- Add Fallback Intent-->
    </capability>
    
    Ganti nilai android:targetPackage, PUT_YOUR_APPLICATION_ID_HERE, dengan applicationId unik Anda.

Kemampuan ini memetakan BII GET_EXERCISE_OBSERVATION ke intent app-widget sehingga saat BII dipicu, widget akan membuat instance dan menampilkannya kepada pengguna.

Sebelum memicu widget, Asisten mengekstrak parameter BII yang didukung dari kueri pengguna. Codelab ini memerlukan parameter BII exerciseObservation.aboutExercise.name, yang mewakili jenis olahraga yang diminta pengguna. Aplikasi ini mendukung tiga jenis olahraga: "berlari", "berjalan", dan "bersepeda". Anda menyediakan inventaris inline untuk memberi tahu Asisten tentang nilai yang didukung ini.

  1. Tentukan elemen inventaris ini dengan menambahkan konfigurasi ini, di atas kemampuan GET_EXERCISE_OBSERVATION, ke shortcuts.xml:
    <!-- shortcuts.xml -->
    
    <!-- shortcuts are bound to the GET_EXERCISE_OBSERVATION capability and
         represent the types of exercises supported by the app. -->
    
    <shortcut
      android:shortcutId="running"
      android:shortcutShortLabel="@string/activity_running">
      <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION">
        <parameter-binding
          android:key="exerciseObservation.aboutExercise.name"
          android:value="@array/runningSynonyms"/>
      </capability-binding>
    </shortcut>
    
    <shortcut
      android:shortcutId="walking"
      android:shortcutShortLabel="@string/activity_walking">
      <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION">
        <parameter-binding
          android:key="exerciseObservation.aboutExercise.name"
          android:value="@array/walkingSynonyms"/>
      </capability-binding>
    </shortcut>
    
    <shortcut
      android:shortcutId="cycling"
      android:shortcutShortLabel="@string/activity_cycling">
      <capability-binding android:key="actions.intent.GET_EXERCISE_OBSERVATION">
        <parameter-binding
          android:key="exerciseObservation.aboutExercise.name"
          android:value="@array/cyclingSynonyms"/>
      </capability-binding>
    </shortcut>
    
    <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION">
      <!-- ... -->
    </capability>
    

Menambahkan intent penggantian

Intent penggantian menangani situasi saat kueri pengguna tidak dapat dipenuhi karena kueri tidak memiliki parameter yang diperlukan oleh kemampuan. Kemampuan GET_EXERCISE_OBSERVATION memerlukan parameter exerciseObservation.aboutExercise.name, yang ditentukan oleh atribut android:required="true". Untuk situasi ini, Asisten mengharuskan Anda menentukan intent penggantian agar permintaan berhasil, meskipun tidak ada parameter yang disediakan dalam kueri.

  1. Di shortcuts.xml, tambahkan intent penggantian ke kemampuan GET_EXERCISE_OBSERVATION menggunakan konfigurasi ini:
    <!-- shortcuts.xml -->
    
    <capability android:name="actions.intent.GET_EXERCISE_OBSERVATION">
    
      <app-widget>
        <!-- ... -->
      </app-widget>
    
      <!-- Fallback intent with no parameters needed to successfully execute.-->
      <intent
        android:identifier="GET_EXERCISE_OBSERVATION_FALLBACK"
        android:action="android.intent.action.VIEW"
        android:targetClass="com.devrel.android.fitactions.widgets.StatsWidgetProvider">
      </intent>
    </capability>
    

Dalam contoh konfigurasi ini, fulfillment penggantian adalah intent Android tanpa parameter dalam data Extra miliknya.

5. Mengaktifkan widget untuk Asisten

Dengan ditetapkannya kemampuan GET_EXERCISE_OBSERVATION, perbarui class widget untuk mendukung panggilan suara Action Aplikasi.

Menambahkan library Ekstensi Widget

Library Ekstensi Widget Action Aplikasi meningkatkan kualitas widget Anda untuk pengalaman Asisten yang fokus pada suara. Secara khusus, hal ini memungkinkan Anda memberikan pengantar TTS kustom untuk widget.

  1. Tambahkan dependensi library Ekstensi Widget ke resource /app/build.gradle contoh aplikasi:
    // app/build.gradle
    
    dependencies {
      //...
      implementation "com.google.assistant.appactions:widgets:0.0.1"
    }
    
    Klik Sync Now di kotak peringatan yang muncul di Android Studio. Menyinkronkan setelah setiap perubahan build.gradle akan membantu Anda menghindari error saat membuat aplikasi.

Menambahkan layanan widget

Layanan adalah komponen aplikasi yang dapat menjalankan operasi yang berjalan lama di latar belakang. Aplikasi Anda harus menyediakan layanan untuk memproses permintaan widget.

  1. Tambahkan layanan ke resource AndroidManifest.xml aplikasi contoh dengan konfigurasi ini:
    <!-- AndroidManifest.xml -->
    <service
       android:name=".widgets.StatsWidgetProvider"
       android:enabled="true"
       android:exported="true">
       <intent-filter>
           <action
               android:name="com.google.assistant.appactions.widgets.PIN_APP_WIDGET" />
       </intent-filter>
    </service>
    
    

Selama kueri suara yang memicu fulfillment widget, Asisten menggunakan layanan ini untuk mengirim permintaan ke aplikasi. Layanan ini menerima permintaan beserta data BII. Layanan menggunakan data ini untuk menghasilkan objek widget RemoteView untuk dirender dalam Asisten.

Memperbarui class widget

Aplikasi Anda kini dikonfigurasi untuk merutekan permintaan kemampuan GET_EXERCISE_OBSERVATION ke class widget. Selanjutnya, perbarui class StatsWidget.kt untuk menghasilkan instance widget yang dipersonalisasi ke permintaan pengguna, menggunakan nilai parameter BII.

  1. Buka class StatsWidget.kt dan impor library Ekstensi Widget Action Aplikasi:
    // StatsWidget.kt
    
    // ... Other import statements
    import com.google.assistant.appactions.widgets.AppActionsWidgetExtension
    
    
  2. Tambahkan variabel pribadi berikut, yang Anda gunakan saat menentukan informasi yang seharusnya mengisi widget:
    // StatsWidget.kt
    
    private val hasBii: Boolean
    private val isFallbackIntent: Boolean
    private val aboutExerciseName: String
    private val exerciseType: FitActivity.Type
    
  3. Tambahkan fungsi init untuk mengizinkan class menggunakan data opsi widget yang diteruskan dari Asisten:
    // StatsWidget.kt
    
    init {
      val optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId)
      val bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII)
      hasBii = !bii.isNullOrBlank()
      val params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS)
    
      if (params != null) {
        isFallbackIntent = params.isEmpty
        if (isFallbackIntent) {
          aboutExerciseName = context.resources.getString(R.string.activity_unknown)
        } else {
            aboutExerciseName = params.get("aboutExerciseName") as String
          }
      } else {
          isFallbackIntent = false
          aboutExerciseName = context.resources.getString(R.string.activity_unknown)
      }
      exerciseType = FitActivity.Type.find(aboutExerciseName)
    }
    
    

Mari kita pelajari bagaimana pembaruan ini memungkinkan class StatsWidget.kt merespons intent Android yang dihasilkan oleh kemampuan GET_EXERCISE_OBSERVATION:

  • optionsBundle = Bundle
    • Bundle adalah objek yang dimaksudkan untuk digunakan di seluruh batas proses, di antara aktivitas dengan intent, dan untuk menyimpan status sementara di seluruh perubahan konfigurasi. Asisten menggunakan objek Bundle untuk meneruskan data konfigurasi ke widget.
  • bii = actions.intent.GET_EXERCISE_OBSERVATION
    • Nama BII tersedia dari Bundle menggunakan AppActionsWidgetExtension.
  • hasBii = true
    • Memeriksa apakah ada BII.
  • params = Bundle[{aboutExerciseName=running}]
    • Bundle khusus, yang dihasilkan oleh Action Aplikasi, ditempatkan di dalam opsi widget Bundle. Paket tersebut berisi pasangan nilai kunci BII. Dalam hal ini, nilai running diekstrak dari contoh kueri, "Ok Google, tampilkan statistik lari saya di ExampleApp".
  • isFallbackIntent = false
    • Memeriksa keberadaan parameter BII yang diperlukan dalam Extras intent.
  • aboutExerciseName = running
    • Mendapatkan nilai Extras intent untuk aboutExerciseName.
  • exerciseType = RUNNING
    • Menggunakan aboutExerciseName untuk mencari objek jenis database yang sesuai.

Setelah class StatsWidget dapat memproses data intent Android Action Aplikasi yang masuk, perbarui logika alur pembuatan widget untuk memeriksa apakah widget tersebut dipicu oleh Action Aplikasi.

  1. Di StatsWidget.kt, ganti fungsi updateAppWidget() dengan kode ini:
    // StatsWidget.kt
    
    fun updateAppWidget() {
       /**
        * Checks for App Actions BII invocation and if BII parameter data is present.
        * If parameter data is missing, use data from last exercise recorded to the
        *  fitness tracking database.
        */
       if (hasBii && !isFallbackIntent) {
           observeAndUpdateRequestedExercise()
       } else observeAndUpdateLastExercise()
    }
    
    

Kode sebelumnya merujuk ke fungsi baru, observeAndUpdateRequestedExercise. Fungsi ini menghasilkan data widget menggunakan data parameter exerciseType yang diteruskan oleh intent Android Action Aplikasi.

  1. Tambahkan fungsi observeAndUpdateRequestedExercise dengan kode ini:
    // StatsWidget.kt
    
    /**
    * Create and observe the last exerciseType activity LiveData.
    */
    private fun observeAndUpdateRequestedExercise() {
      val activityData = repository.getLastActivities(1, exerciseType)
    
       activityData.observeOnce { activitiesStat ->
           if (activitiesStat.isNotEmpty()) {
               formatDataAndSetWidget(activitiesStat[0])
               updateWidget()
           } else {
               setNoActivityDataWidget()
               updateWidget()
           }
       }
    }
    
    

Dalam kode sebelumnya, gunakan class repositori yang ada di aplikasi untuk mengambil data kebugaran dari database lokal aplikasi. Class ini menyediakan API yang menyederhanakan akses ke database. Repositori berfungsi dengan mengekspos objek LiveData saat menjalankan kueri terhadap database. Dalam kode Anda, Anda mengamati LiveData ini untuk mengambil aktivitas kebugaran terbaru.

Mengaktifkan TTS

Anda dapat memberikan string TTS yang akan diumumkan Asisten saat menampilkan widget. Sebaiknya sertakan fungsi ini untuk memberikan konteks yang dapat didengar dengan widget Anda. Fungsi ini disediakan oleh library Ekstensi Widget Action Aplikasi, yang memungkinkan Anda menetapkan pengantar teks dan TTS yang menyertai widget Anda di Asisten.

Tempat yang baik untuk memberikan pengantar TTS adalah dalam fungsi formatDataAndSetWidget, yang memformat data aktivitas yang ditampilkan dari database aplikasi.

  1. Di StatsWidget.kt, tambahkan kode ini ke fungsi formatDataAndSetWidget:
    // StatsWidget.kt
    
    private fun formatDataAndSetWidget(
      activityStat: FitActivity,
    ) {
          // ...
    
          // Add conditional for hasBii for widget with data
          if (hasBii) {
             // Formats TTS speech and display text for Assistant
             val speechText = context.getString(
                 R.string.widget_activity_speech,
                 activityExerciseTypeFormatted,
                 formattedDate,
                 durationInMin,
                 distanceInKm
             )
             val displayText = context.getString(
                 R.string.widget_activity_text,
                 activityExerciseTypeFormatted,
                 formattedDate
             )
             setTts(speechText, displayText)
          }
    }
    
    

Kode sebelumnya merujuk pada dua resource string: satu untuk ucapan dan yang lain untuk teks. Lihat bagian Rekomendasi gaya Text-to-Speech dari video widget kami untuk rekomendasi TTS. Contoh tersebut juga merujuk ke setTts, fungsi baru yang memberikan informasi TTS ke instance widget.

  1. Tambahkan fungsi setTts baru ini ke StatsWidget.kt menggunakan kode ini:
    // StatsWidget.kt
    
    /**
     * Sets TTS to widget
     */
    private fun setTts(
      speechText: String,
      displayText: String,
    ) {
      val appActionsWidgetExtension: AppActionsWidgetExtension =
          AppActionsWidgetExtension.newBuilder(appWidgetManager)
            .setResponseSpeech(speechText)  // TTS to be played back to the user
            .setResponseText(displayText)  // Response text to be displayed in Assistant
            .build()
    
      // Update widget with TTS
      appActionsWidgetExtension.updateWidget(appWidgetId)
    }
    

Terakhir, selesaikan logika TTS dengan menetapkan informasi TTS saat database olahraga menampilkan data kosong untuk jenis olahraga yang diminta.

  1. Perbarui fungsi setNoActivityDataWidget() di StatsWidget.kt dengan kode ini:
    // StatsWidget.kt
    
    private fun setNoActivityDataWidget() {
      // ...
      // Add conditional for hasBii for widget without data
      if (hasBii) {
        // formats speech and display text for Assistant
        // https://developers.google.com/assistant/app/widgets#library
        val speechText =
          context.getString(R.string.widget_no_activity_speech, aboutExerciseName)
        val displayText =
          context.getString(R.string.widget_no_activity_text)
    
        setTts(speechText, displayText)
      }
    }
    

6. Menguji Action Aplikasi

Selama pengembangan, gunakan plugin Asisten Google untuk melihat pratinjau Action Aplikasi Asisten di perangkat pengujian. Anda dapat menyesuaikan parameter intent untuk Action Aplikasi dengan alat untuk menguji bagaimana tindakan Anda dalam menangani berbagai cara yang mungkin diminta pengguna untuk dijalankan Asisten.

Membuat pratinjau

Untuk menguji Action Aplikasi Anda dengan plugin:

  1. Buka Tools > Google Assistant > App Actions Test Tool. Anda mungkin diminta untuk login ke Android Studio menggunakan akun Google Anda.
  2. Klik Create Preview. Jika diminta, tinjau dan setujui kebijakan dan persyaratan layanan Action Aplikasi.

Menguji jenis olahraga yang diharapkan

Tampilkan widget yang menampilkan informasi tentang proses terakhir yang dijalankan di aplikasi dengan mengikuti langkah-langkah berikut di alat pengujian:

  1. Pada langkah pertama, saat alat meminta Anda untuk memilih dan mengonfigurasi BII, pilih actions.intent.GET_EXERCISE_OBSERVATION.
  2. Di kotak exerciseObservation, perbarui nama Olahraga default dari climbing menjadi run.
  3. Klik Run App Action.

Layar menunjukkan widget yang ditampilkan menggunakan plugin Asisten Google.

Menguji jenis olahraga yang tidak terduga

Untuk menguji jenis olahraga yang tidak terduga dalam alat pengujian:

  1. Di kotak exerciseObservation, perbarui nilai name dari Run menjadi Climbing.
  2. Klik Run App Action.

Asisten akan menampilkan widget yang menayangkan informasi "No activity found".

Layar menunjukkan widget tanpa informasi olahraga yang ditampilkan menggunakan plugin Asisten Google.

Menguji intent penggantian

Kueri yang memicu intent penggantian akan menampilkan widget yang menayangkan informasi tentang aktivitas yang terakhir dicatat dari jenis olahraga apa pun.

Untuk menguji intent penggantian:

  1. Di kotak exerciseObservation, hapus objek aboutExercise.
  2. Klik Run App Action.

Asisten akan menampilkan widget yang menayangkan informasi untuk olahraga terakhir yang telah diselesaikan.

Layar menunjukkan widget yang menampilkan aktivitas yang terakhir dicatat, menggunakan plugin Asisten Google.

7. Langkah berikutnya

Selamat!

Kini Anda memiliki kemampuan untuk memenuhi kueri pengguna menggunakan Widget Android dengan Asisten.

Yang telah dibahas

Dalam codelab ini, Anda telah mempelajari cara:

  • Menambahkan widget aplikasi ke BII.
  • Mengubah widget untuk mengakses parameter dari Tambahan Android.

Langkah berikutnya

Dari sini, Anda dapat terus mencoba mengoptimalkan aplikasi kebugaran. Untuk mereferensikan project yang sudah selesai, lihat repo utama di GitHub.

Berikut beberapa saran untuk mempelajari lebih lanjut cara memperluas aplikasi ini dengan Action Aplikasi:

  • Buka referensi intent bawaan Action Aplikasi guna menemukan cara lainnya untuk memperluas aplikasi Anda ke Asisten.

Untuk melanjutkan perjalanan Actions on Google Anda, pelajari referensi berikut:

Ikuti kami di Twitter @ActionsOnGoogle untuk terus memantau pengumuman terbaru kami, dan kirim tweet ke #appactions untuk membagikan karya yang telah Anda buat.

Survei masukan

Terakhir, isi survei ini untuk memberikan masukan tentang pengalaman Anda dengan codelab ini.