Wear OS için Google Asistan

Kol saati sesli asistanları, hareket halindeyken hızlı ve etkili şekilde senaryolara olanak tanır. Giyilebilir cihazlarda sesli etkileşimler dinamiktir. Yani kullanıcı, bir yanıt beklerken cihaza bakmak zorunda kalmadan bileğiyle konuşabilir.

Android geliştiricileri, Asistan Uygulama İşlemleri sayesinde Wear OS uygulamalarını Google Asistan'a genişletebilir. Böylece "Ok Google, ExampleApp'te koşumu başlat" gibi sesli komutlarla kullanıcıları hızlı bir şekilde uygulamalarına yönlendirebilirler.

Sınırlamalar

Wear'da Asistan, medya ve antrenman izleme etkinliği etkileşimlerini destekler. Medya uygulamalarını Asistan'la entegre etme konusunda yol gösterici bilgiler için Google Asistan ve medya uygulamaları sayfasına bakın. Wear OS uygulamalarında aşağıdaki Sağlık ve Fitness BBI'leri desteklenir:

İşleyiş şekli

Uygulama İşlemleri, uygulama işlevlerini Asistan'ı da içerecek şekilde genişleterek kullanıcıların seslerini kullanarak uygulama özelliklerine hızlı bir şekilde erişebilmesini sağlar. Bir kullanıcı uygulamanızı kullanmak istediğini Asistan'a belirttiğinde Asistan, uygulamanın shortcuts.xml kaynağında uygulamanıza kayıtlı Uygulama İşlemleri'ni arar.

Uygulama İşlemleri, shortcuts.xml bölümünde Android özellik öğeleriyle açıklanmaktadır. Özellik öğeleri, uygulama özelliğinin anlamsal açıklamaları olan yerleşik amaçları (BII) derin bağlantı şablonu gibi istek karşılama talimatlarıyla eşler. Uygulamanızı Google Play Console'u kullanarak yüklediğinizde Google, shortcuts.xml bölümünde belirtilen özellikleri kaydederek kullanıcıların Asistan'dan tetiklemesine olanak tanır.

Uygulama İşlemleri akışı

Önceki şemada, bağımsız bir uygulamada egzersizini duraklatan bir kullanıcı gösterilmektedir. Aşağıdaki adımlar gerçekleşir:

  1. Kullanıcı, ilgili giyilebilir uygulama için Asistan'dan sesli istekte bulunur.
  2. Asistan, isteği önceden eğitilmiş bir modelle (BII) eşleştirir ve sorguda bulunan, BII tarafından desteklenen tüm parametreleri ayıklar.
  3. Bu örnekte Asistan, sorguyu PAUSE_EXERCISE BII ile eşleştirir ve "hike" adlı egzersiz adı parametresini ayıklar.
  4. Uygulama, bu BII için shortcuts.xml özellik karşılama tanımı aracılığıyla tetiklenir.
  5. Uygulama, istek karşılamayı işleyerek egzersizi duraklatır.

Bağlantı

Uygulama İşlemleri geliştirme, uygulamanızın Android destekli cihaz ekosistemindeki işlevlerine bağlı olarak değişiklik gösterir.

  • Tethered: Giyilebilir bir uygulamanın tam işlevsel olması için mobil uygulamaya bağımlı olduğu durumlarda, kullanıcının kol saati üzerinden Asistan'a yaptığı sorgular mobil cihazda karşılanır. Bu senaryonun düzgün çalışması için Uygulama İşlemleri yerine getirme mantığının mobil uygulamaya yerleştirilmesi gerekir.

  • Bağlı değilken: Giyilebilir bir uygulama, işlevsellik açısından mobil uygulamadan bağımsız olduğunda Asistan, kullanıcı sorgularını kol saatinde yerel olarak karşılar. Bu isteklerin düzgün bir şekilde yerine getirilebilmesi için App Actions özelliklerinin giyilebilir uygulamaya eklenmesi gerekir.

Wear'a ses özellikleri ekleyin

Uygulama İşlemleri'ni Wear OS uygulamanıza entegre etmek için aşağıdaki adımları uygulayın:

  1. Sesle etkinleştirmek istediğiniz uygulama içi işlevi, ilgili BII ile eşleştirin.
  2. Ana etkinliğinizde (AndroidManifest.xml) Android kısayolları için destek beyan edin.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. AndroidManifest.xml dosyasına bir <intent-filter> öğesi ekleyin. Bu şekilde Asistan, uygulamanızın içeriğine bağlanmak için derin bağlantıları kullanabilir.

  4. BBI'leriniz için sipariş karşılama ayrıntılarını sağlamak üzere Kısayollar.xml oluşturun. Uygulamanızın desteklediği BBI'leri Asistan'a bildirmek için capability kısayol öğelerini kullanabilirsiniz. Daha fazla bilgi için Özellik ekleme bölümüne bakın.

  5. shortcuts.xml içinde, seçtiğiniz BII için bir özellik uygulayın. Aşağıdaki örnekte START_EXERCISE BII özelliği gösterilmektedir:

    <?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. Mümkünse, uygulamanızdaki özellikleri ve içeriği temsil eden bir satır içi envanter kullanarak kullanıcı konuşma varyasyonları desteğini genişletin.

    <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. Uygulamanızın mantığını, gelen Uygulama İşlemleri yerine getirmeyi işleyecek şekilde güncelleyin.

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

Uygulamanızı önizleme, test etme ve yayınlama

Uygulama İşlemleri, uygulamanızı incelemeniz ve test etmeniz için araçlar sağlar. Daha ayrıntılı bilgi için Android Studio için Google Asistan eklentisi konusuna bakın. Uygulamanızı test edip bir test sürümü oluşturduktan sonra, Uygulama İşlemleri incelemesi isteğinde bulunabilir ve uygulamayı dağıtabilirsiniz. Yaygın hataların ele alınmasıyla ilgili yol gösterici bilgiler için aşağıdaki en iyi uygulamaları inceleyin.

En iyi uygulamalar

Önerilen bu en iyi uygulamaları izleyerek uygulamanızı Asistan'la entegre ederken olumlu bir kullanıcı deneyimi oluşturun.

Bir isteği başarıyla yerine getirirken veya bir hata uyarısı vermek için kullanıcı isteğine yanıt vermek üzere dokunma teknolojisi ve sesli geri bildirimle birlikte karşılık gelen veya alakalı bir onay ekranı gösterin.

Temel kalite Daha iyi kalite En iyi kalite
  • Bir etkinlikten ConfirmationActivity başlatmak için niyet oluşturun.
  • Bir etkinlikten ConfirmationActivity başlatmak için niyet oluşturun.
  • Mevcut durumu belirtmek için zil sesi VE dokunsal geribildirim çalar.
  • Bir etkinlikten ConfirmationActivity başlatmak için niyet oluşturun.
  • Hatayı veya başarıyı belirtmek için Metin-Konuşma (TTS) ve dokunsal geri bildirim.

Sık karşılaşılan hatalar ve çözümleri

Aşağıdaki hata durumlarında, aşağıdaki önerilen uygulama ConfirmationActivity mesajlaşmasını kullanın.

Hata durumu Örnek kullanıcı etkileşimi Uygulama yanıtı
Etkinlik zaten devam ediyor "ExerciseName'imi başlat"
"ExerciseName'imi devam ettir"
Görüntüleme hatası: Zaten devam eden etkinlik."
Etkinlik başlamadı "ExerciseName etkinliğimi duraklat/durdur" Görüntüleme hatası: "Hiçbir etkinlik başlamadı."
Etkinlik türleri eşleşmiyor Devam eden aktiviteden farklı bir egzersiz türü olan "ExerciseName'imi duraklat/durdur". Görüntüleme hatası: "Etkinlik türü uyuşmazlığı."
Giriş hatası Kullanıcı uygulamaya giriş yapmadığında "ExerciseName'imi başlat". Kullanıcıyı uyarmak ve giriş ekranına yönlendirmek için dokunsal geri bildirim oynayın.
İzin hatası Kullanıcının istenen etkinliği başlatma izni yok. Kullanıcıyı uyarmak ve izin isteği ekranına yönlendirmek için dokunma teknolojisiyle oynatın.
Sensör sorunu Kullanıcının cihaz ayarlarında konum hizmetleri kapalıdır. Kullanıcıları uyarmak ve sensör hatası ekranını göstermek için dokunma teknolojisiyle oynayın. Sonraki isteğe bağlı adımlar:
  • Etkinliği sensör takibi olmadan başlat ve kullanıcıya bildir.
  • Etkinliği sensör izleme olmadan başlatmak için kullanıcıdan onay isteyin.