Wear OS için Google Asistan

Kol saati sesli asistanları, hareket halindeyken hızlı ve verimli bir şekilde kullanım senaryolarına olanak tanır. Giyilebilir cihazlarda sesli etkileşimler dinamiktir. Diğer bir deyişle, kullanıcı yanıt beklerken cihaza bakmaksızın bileğiyle konuşabilir.

Asistan Uygulama İşlemleri sayesinde Android geliştiricileri Wear OS uygulamalarını Google Asistan'ı kapsayacak şekilde genişletebilir, "Ok Google, ÖrnekUygulama'da çalıştırmamı başlat" gibi sesli komutlarla kullanıcıları uygulamalarına hızlı yönlendirebilir.

Sınırlamalar

Wear'daki Asistan, medya ve antrenman takibiyle ilgili aktivite etkileşimlerini destekler. Medya uygulamalarının Asistan'la entegrasyonu hakkında yardım için Google Asistan ve medya uygulamaları konusuna bakın. Wear OS uygulamalarında aşağıdaki Sağlık ve Fitness BiI'leri desteklenir:

Nasıl çalışır?

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

Uygulama İşlemleri shortcuts.xml bölümünde Android özellik öğeleriyle birlikte açıklanmıştır. Yetenek öğeleri, uygulama özelliklerinin anlamsal açıklamaları olan yerleşik amaçları (BII) derin bağlantı şablonu gibi istek karşılama talimatlarıyla eşleştirir. Uygulamanızı Google Play Console'u kullanarak yüklediğinizde Google, shortcuts.xml'da beyan edilen özellikleri kaydeder. Böylece kullanıcılar bunları Asistan'dan tetikleyebilir.

Uygulama İşlemleri akışı

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

  1. Kullanıcı, söz konusu giyilebilir uygulama için Asistan'a sesli bir istekte bulunur.
  2. Asistan, isteği önceden eğitilmiş bir modelle (BII) eşleştirir ve sorguda bulunan ve BII tarafından desteklenen tüm parametreleri çıkarır.
  3. Örnekte, Asistan, sorguyu PAUSE_EXERCISE BII ile eşleştirir ve "hike" egzersiz adı parametresini çıkarır.
  4. Uygulama, bu BII için shortcuts.xml özellik karşılama tanımı aracılığıyla tetiklenir.
  5. Uygulama, egzersizi duraklatarak isteği yerine getirme işlemini işler.

Bağlantı

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

  • Tethered: Giyilebilir bir uygulama tüm işlevselliği için mobil uygulamaya bağımlı olduğunda, Asistan'a kol saati üzerinden yapılan kullanıcı sorguları mobil cihazda karşılanır. Bu senaryonun düzgün çalışabilmesi için Uygulama İşlemleri karşılama mantığının mobil uygulamaya entegre edilmesi gerekir.

  • İnternet paylaşımı olmadan: Asistan, giyilebilir bir uygulama işlevsellik açısından bir mobil uygulamadan bağımsız olduğunda, kullanıcı sorgularını yerel olarak kol saatinde karşılar. Bu isteklerin düzgün bir şekilde yerine getirilebilmesi için Uygulama İşlemleri özelliklerinin giyilebilir uygulamaya yerleştirilmesi gerekir.

Wear'a ses özellikleri ekleyin

Aşağıdaki adımları uygulayarak Uygulama İşlemleri'ni Wear OS uygulamanıza entegre edin:

  1. Sesle etkinleştirmek istediğiniz uygulama içi işlevselliği karşılık gelen BII ile eşleştirin.
  2. Ana etkinlik AndroidManifest.xml kaynağınızda Android kısayolları için destek beyanında bulunun.

    <!-- 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. BiI'larınızla ilgili istek karşılama ayrıntıları sağlamak için shortcuts.xml oluşturun. Uygulamanızın desteklediği iş verilerini Asistan'a bildirmek için capability kısayol öğelerini kullanırsınız. Daha fazla bilgi için Özellik ekleme bölümüne bakın.

  5. shortcuts.xml içinde, seçtiğiniz BII'ye bir özellik uygulayın. Aşağıdaki örnekte START_EXERCISE BII için bir özellik 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. Gelen Uygulama İşlemleri istek karşılama işlemini işlemek için uygulamanızın mantığını 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 bölümüne bakın. Uygulamanızı test edip test sürümü oluşturduktan sonra Uygulama İşlemleri incelemesi isteğinde bulunabilir ve uygulamanızı dağıtabilirsiniz. Sık karşılaşılan hataları ele alma konusunda rehberlik için aşağıdaki en iyi uygulamaları inceleyin.

En iyi uygulamalar

Bu önerilen en iyi uygulamaları izleyerek uygulamanızı Asistan ile entegre ederken olumlu bir kullanıcı deneyimi oluşturun.

Bir istek başarıyla yerine getirilirken kullanıcı isteğine yanıt vermek veya bir hata uyarısı vermek için dokunsal ve sesli geri bildirimle birlikte ilgili veya ilgili bir onay ekranı gösterin.

Temel kalite Daha yüksek kalite En iyi kalite
  • ConfirmationActivity işlemini bir etkinlikten başlatmak için amaç oluşturun.
  • ConfirmationActivity işlemini bir etkinlikten başlatmak için amaç oluşturun.
  • Mevcut durumu belirtmek için zil VE dokunsal geri bildirim çal.
  • ConfirmationActivity işlemini bir etkinlikten başlatmak için amaç oluşturun.
  • Hata 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ı için önerilen uygulama ConfirmationActivity mesajlarını kullanın.

Hata durumu Örnek kullanıcı etkileşimi Uygulama yanıtı
Etkinlik zaten devam ediyor "ExerciseName adlı egzersizimi başlat"
"ExerciseName adlı egzersizimi devam ettir"
Görüntüleme hatası: Zaten devam eden etkinlik."
Hiçbir etkinlik başlatılmadı "ExerciseName adlı egzersizimi 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 "Pause/Stop my ExerciseName". Görüntüleme hatası: "Etkinlik türü eşleşmiyor."
Giriş hatası Kullanıcı uygulamaya giriş yapmadığında "ExerciseName adlı egzersizimi başlat". Kullanıcıyı uyarmak ve giriş ekranına yönlendirmek için dokunsal geri bildirim oynatın.
İzin hatası Kullanıcının istediği etkinliği başlatma izni yok. Kullanıcıyı uyarmak ve izin isteği ekranına yönlendirmek için dokunsal geri bildirim oynatın.
Sensör sorunu Kullanıcının cihaz ayarlarında konum hizmetleri devre dışı bırakılmışsa. Kullanıcıları uyarmak ve sensör hatası ekranını göstermek için dokunsal geri bildirim kullanın. İsteğe bağlı sonraki adımlar:
  • Sensör izlemeden etkinliği başlatın ve kullanıcıya bildirin.
  • Sensör izleme olmadan aktivite başlatmak için kullanıcıdan onay isteyin.