Asisten Google untuk Wear OS

Tonton video asisten suara untuk mendapatkan wawasan melakukan berbagai hal kapan saja di mana saja dengan cepat dan efisien. Interaksi suara pada perangkat wearable bersifat dinamis, yang berarti bahwa pengguna dapat berbicara ke pergelangan tangan tanpa perlu melihat perangkat sembari menunggu respons.

Dengan Action Aplikasi Asisten, developer Android dapat memperluas aplikasi Wear OS ke Asisten Google sehingga dapat mempercepat pengguna mengakses aplikasi mereka dengan perintah suara seperti "Ok Google, mulai lari saya di ContohAplikasi".

Batasan

Asisten di Wear mendukung interaksi aktivitas pelacakan media dan olahraga. Untuk mengetahui panduan mengintegrasikan aplikasi media dengan Asisten, lihat Asisten Google dan aplikasi media. BII Kesehatan dan Kebugaran berikut didukung untuk aplikasi Wear OS:

Cara kerjanya

Action Aplikasi memperluas fungsi aplikasi ke Asisten sehingga memungkinkan pengguna mengakses fitur aplikasi dengan cepat menggunakan suara mereka. Saat pengguna menunjukkan kepada Asisten bahwa mereka ingin menggunakan aplikasi Anda, Asisten akan mencari Action Aplikasi yang terdaftar di aplikasi Anda di resource shortcuts.xml aplikasi.

Action Aplikasi dijelaskan dalam shortcuts.xml dengan elemen kemampuan Android. Elemen kemampuan memasangkan intent bawaan (BII), yang merupakan deskripsi semantik dari kemampuan aplikasi, dengan petunjuk fulfillment, seperti template deep link. Saat Anda mengupload aplikasi menggunakan konsol Google Play, Google akan mendaftarkan kemampuan yang dideklarasikan di shortcuts.xml agar tersedia untuk dipicu oleh pengguna dari Asisten.

Alur Action Aplikasi

Diagram sebelumnya menunjukkan bahwa pengguna tengah menjeda latihan mereka di aplikasi mandiri. Langkah-langkah berikut akan terjadi:

  1. Pengguna membuat permintaan suara ke Asisten untuk aplikasi wearable tertentu.
  2. Asisten mencocokkan permintaan dengan model terlatih (BII) dan mengekstrak semua parameter yang ditemukan dalam kueri yang didukung oleh BII.
  3. Dalam contoh ini, Asisten mencocokkan kueri dengan BII PAUSE_EXERCISE, dan mengekstrak parameter nama olahraga, yaitu “mendaki”.
  4. Aplikasi dipicu melalui definisi fulfillment kemampuan shortcuts.xml untuk BII ini.
  5. Aplikasi memproses fulfillment sehingga olahraga akan dijeda.

Konektivitas

Pengembangan Action Aplikasi bervariasi bergantung pada fungsi aplikasi Anda dalam ekosistem perangkat yang didukung Android.

  • Di-tether: Jika aplikasi wearable bergantung pada aplikasi seluler untuk dapat berfungsi lengkap, kueri pengguna yang dibuat ke Asisten melalui smartwatch akan dipenuhi di perangkat seluler. Logika fulfillment Action Aplikasi harus di-build ke dalam aplikasi seluler agar skenario ini berfungsi dengan benar.

  • Tidak Di-tether: Jika aplikasi wearable tidak bergantung pada aplikasi seluler untuk dapat berfungsi, Asisten akan memenuhi kueri pengguna secara lokal di smartwatch. Kemampuan Action Aplikasi harus disertakan dalam aplikasi wearable agar permintaan ini terpenuhi dengan benar.

Menambahkan kemampuan suara ke Wear

Integrasikan Action Aplikasi dengan aplikasi Wear OS Anda dengan mengikuti langkah-langkah berikut:

  1. Cocokkan fungsi dalam aplikasi yang ingin Anda aktifkan dengan suara ke BII yang sesuai.
  2. Deklarasikan dukungan untuk pintasan Android di resource AndroidManifest.xml aktivitas utama Anda.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. Tambahkan elemen <intent-filter> ke AndroidManifest.xml. Tindakan ini memungkinkan Asisten menggunakan deep link untuk terhubung ke konten aplikasi Anda.

  4. Buat shortcuts.xml untuk memberikan detail fulfillment BII Anda. Anda menggunakan elemen pintasan capability untuk mendeklarasikan BII yang didukung aplikasi Anda ke Asisten. Untuk mengetahui informasi selengkapnya, lihat Menambahkan kemampuan.

  5. Di shortcuts.xml, terapkan kemampuan untuk BII yang Anda pilih. Contoh berikut menunjukkan kemampuan untuk BII START_EXERCISE:

    <?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. Jika memungkinkan, perluas dukungan untuk variasi ucapan pengguna menggunakan inventaris inline, yang mewakili fitur dan konten di aplikasi Anda.

    <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. Update logika aplikasi Anda untuk menangani fulfillment Action Aplikasi yang masuk.

    //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)
    }
    

Melihat pratinjau, menguji, dan memublikasikan aplikasi

Action Aplikasi menyediakan alat untuk meninjau dan menguji aplikasi Anda. Untuk informasi yang lebih detail, lihat plugin Asisten Google untuk Android Studio. Setelah menguji aplikasi dan membuat rilis pengujian, Anda dapat meminta peninjauan Action Aplikasi dan men-deploy-nya. Tinjau praktik terbaik berikut untuk mengetahui panduan dalam menangani error umum.

Praktik terbaik

Hadirkan pengalaman pengguna yang positif saat mengintegrasikan aplikasi Anda dengan Asisten, dengan mengikuti praktik terbaik yang direkomendasikan berikut.

Tampilkan layar konfirmasi yang sesuai atau relevan, beserta respons audio dan haptik, untuk merespons permintaan pengguna, baik saat berhasil memenuhi permintaan maupun untuk memberi tahu adanya error.

Kualitas dasar Kualitas yang lebih baik Kualitas terbaik
  • Buat intent untuk memulai ConfirmationActivity dari aktivitas.
  • Buat intent untuk memulai ConfirmationActivity dari aktivitas.
  • Sentuh bel DAN respons haptik untuk menunjukkan status saat ini.
  • Buat intent untuk memulai ConfirmationActivity dari aktivitas.
  • Text-To-Speech (TTS) dan respons haptik untuk menunjukkan error atau keberhasilan.

Error umum dan penyelesaian masalah

Untuk kasus error berikut, gunakan pesan ConfirmationActivity aplikasi yang direkomendasikan berikut.

Kasus error Contoh interaksi pengguna Respons aplikasi
Aktivitas sudah berlangsung "Mulai NamaLatihan saya"
"Lanjutkan NamaLatihan"
Tampilkan error: Aktivitas sudah berlangsung."
Tidak ada Aktivitas dimulai "Jeda/Hentikan NamaLatihan saya" Error tampilan: "Tidak ada aktivitas dimulai".
Ketidakcocokan jenis Aktivitas "Jeda/Hentikan ExerciseName saya", yang merupakan jenis olahraga berbeda dari aktivitas yang sedang berlangsung. Error tampilan: "Jenis aktivitas tidak cocok".
Kesalahan login "Mulai NamaLatihan saya" jika pengguna tidak login ke aplikasi. Sentuh haptic untuk memberi tahu pengguna dan mengalihkan ke layar login.
Error pada izin Pengguna tidak memiliki izin untuk memulai aktivitas yang diminta. Sentuh haptic untuk memberi tahu pengguna dan mengalihkan ke layar permintaan izin.
Masalah sensor Layanan lokasi pengguna dinonaktifkan di setelan perangkatnya. Sentuh haptic untuk memberi tahu pengguna dan menampilkan layar error sensor. Langkah opsional berikutnya:
  • Memulai aktivitas tanpa pelacakan sensor dan memberi tahu pengguna.
  • Minta konfirmasi pengguna untuk memulai aktivitas tanpa pelacakan sensor.