Sağlık Hizmetleri ile sensör verilerini simüle edin

Uygulamanızı, egzersiz yapılıyormuş gibi test etmek için Wear OS'teki Sağlık Hizmetleri'nden oluşturulan sentetik verileri kullanın.

Wear OS 3 (API düzeyi 30) veya daha yeni bir sürümün yüklü olduğu bir emülatörde test yapıyorsanız emülatör tarafından oluşturulan sentetik verileri kullanabilirsiniz. Wear OS 3 ve sonraki sürümlerde sentetik veri oluşturma arasındaki farklar hakkında daha fazla bilgi edinmek için aşağıdaki kılavuza göz atın.

Wear OS 4 ve sonraki sürümlerde sentetik verileri kullanma

Wear OS 4 (API düzeyi 33) veya sonraki sürümlerin çalıştığı bir emülatörde test yapıyorsanız uygulamanızı test etmek için emülatör tarafından oluşturulan sentetik verileri kullanabilirsiniz. Bu, sentetik verilerin Wear OS'in önceki sürümlerinde oluşturulma şekline kıyasla çeşitli iyileştirmeler sunar:

emülatörünüzü Wear OS 4 veya sonraki sürümleri destekleyen bir sürüme yükseltmeniz gerekir.

Sağlık Hizmetleri Sensör Paneli'ni kullanma

Android Studio Koala Yeni Özellikler Güncellemesi (Canary), Wear OS'te Health Services sensör panelini içerir. Bu panel, belirli sensör özelliklerine sahip olan veya olmayan bir cihazı simüle etmek için kullanılabilir. Bu, Wear OS'te fitness uygulamaları geliştirirken test edilmesi gereken önemli bir özelliktir.

Metrik değerlerini değiştirmek ve uygulamanızın nasıl ayarlandığını gözlemlemek için de paneli kullanabilirsiniz.

Paneli açmak ve kullanmak için aşağıdakileri yapın:

  1. Android Sanal Cihaz (AVD) oluşturun veya açın ve uygulamanızı emülatörde çalıştırın.
  2. Emülatör panelinde Wear Health Services'i seçin. Wear Sağlık Hizmetleri panelini açın Wear Sağlık Hizmetleri paneli açılır ve farklı Android destekli cihazlarda kullanılabilen sensörlerin listesi gösterilir.

Panel açıldıktan sonra şunları yapabilirsiniz:

  • Bir sonraki alıştırma sırasında etkinleştirilecek özellikleri seçmek için Standart özellikler ve Tüm özellikler (varsayılan) arasında geçiş yapın. Onay kutularını işaretleyerek tek tek özellikleri etkinleştirebilir veya devre dışı bırakabilirsiniz. Mevcut özellikler listesini emüle edilmiş cihaza göndermek için Uygula'yı, özellikler listesini varsayılan açık/kapalı değerlerine geri yüklemek için Sıfırla'yı seçin.
  • Etkinlikleri tetikle açılır düğmesini seçtikten sonra farklı kullanıcı etkinliklerini tetikleyin. Buradan, fitness etkinliklerinin otomatik olarak duraklatılmasını/devam ettirilmesini tetikleyebilir, kullanıcı tarafından uyku etkinliklerini tetikleyebilir ve kullanıcının golf sahasında veya mini golf sahasında yaptığı golf vuruşlarını tetikleyebilirsiniz.
  • Emülatöre yüklenen bir uygulamada egzersize başladıktan sonra sensör değerlerini geçersiz kılma Farklı egzersiz metrikleri için yeni değerler girdikten sonra bu değerleri emülatörle senkronize etmek üzere Uygula'yı seçin. Bu, uygulamanızın farklı egzersiz koşullarını ve kullanıcıların fitness alışkanlıklarını nasıl ele aldığını test etmek için faydalıdır.

Emülatörle sentetik veri oluşturma

Uygulamanızı sensör paneli olmadan da çalıştırabilir ve verilerin emülatör tarafından otomatik olarak oluşturulmasını sağlayabilirsiniz.

Sanal veri oluşturma işlemini başlatmak, duraklatmak ve sonlandırmak için uygulama içi kontrollerinizi kullanın.

Ayrıca, emülatörün her alıştırma için aynı veri değerlerini oluşturduğunu da unutmayın.

Etkinlikleri simüle etme

Emülatörde AUTO_PAUSE_DETECTED gibi çeşitli etkinlikleri simüle edebilirsiniz. Bu etkinlikleri tetiklemek için aşağıdaki komut kullanılabilir:

adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices

Yapay etkinlikler

Etkinlik

Anahtar

Otomatik Duraklatma Algılandı

whs.AUTO_PAUSE_DETECTED

Otomatik Devam Ettirme Algılandı

whs.AUTO_RESUME_DETECTED

Düşme Algılandı

whs.FALL_OVER

Uyku Algılandı

whs.START_SLEEPING

Uyku-Duraklatma Algılandı

whs.STOP_SLEEPING

Golf Vuruşu Algılandı

whs.GOLF_SHOT

Örneğin, otomatik duraklatma etkinliğini tetiklemek için aşağıdaki komutu kullanabilirsiniz:

adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices

Golf vuruşu etkinlikleri için aşağıdaki tabloda belirtilen golf vuruşu salınım türü ile ilgili ek parametreler belirtmeniz gerekir:

Tablo 1: Etkinlikler ve anahtarları

Golf Vuruşu Salıncak Türü

Parametre

Salıncak Vuruşu Türü

putt vuruşu

Kısmi Salınım Türü

kısmi

Tam Salıncak Tipi

tam

Golf vuruşu etkinliğini belirttikten sonra golf vuruşu salınım türünü ekleyin:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \
  "golf-swing-type-parameter" com.google.android.wearable.healthservices

Örneğin, aşağıdaki komut kısmi bir golf vuruşunu tetikler:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \
  com.google.android.wearable.healthservices

Wear OS 3'te sentetik verileri kullanma

Wear OS 3 çalıştıran bir emülatörde test yapıyorsanız uygulamanızı test etmek için sentetik verileri de kullanabilirsiniz.

Sentetik veri oluşturmayı etkinleştirme

Wear OS 3'te yapay veri oluşturmayı etkinleştirmek için aşağıdaki adımları tamamlayın.

  1. Geliştirici seçeneklerini etkinleştirin.
  2. Sentetik modu etkinleştirmek için aşağıdaki adb komutunu verin:

    adb shell am broadcast \
    -a "whs.USE_SYNTHETIC_PROVIDERS" \
    com.google.android.wearable.healthservices
    

Sentetik veri oluşturma etkinleştirildikten sonra, "sentetik kullanıcının" davranışını kontrol etmek için bu sayfada açıklanan komutları verin.

Sentetik veri oluşturmayı devre dışı bırakma

Gerçek sensörleri kullanmaya geri dönmek için aşağıdaki komutu çalıştırın:

adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices

Sentetik egzersizler

Sağlık Hizmetleri aşağıdaki egzersiz türlerini destekler:

  • Yaya: whs.synthetic.user.START_WALKING
  • Koşu: whs.synthetic.user.START_RUNNING
  • Doğa yürüyüşü: whs.synthetic.user.START_HIKING
  • Yüzme: whs.synthetic.user.START_SWIMMING
  • Koşu bandında koşma: whs.synthetic.user.START_RUNNING_TREADMILL

Alıştırmalar, aşağıdaki veri türleri için gerçekçi sentetik veriler oluşturur:

  • Nabız
  • Dakikadaki adım sayısı
  • Tek bir varsayılan rota kullanılarak GPS konumu
  • Etkinliğin süresi
  • Yükseklik ve katlar

Ayrıca aşağıdaki durumlar oluşturulabilir:

  • Uyku durumu: Uykuda veya uyanık
  • Düşme algılayıcı

Başlat

Bir egzersizi simüle etmeye başlamak için com.google.android.wearable.healthservices adresine uygun yayını gönderin:

# start the "walking" synthetic exercise
$ adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices

Her etkinlik için desteklenen metriklerin hazır ayarları vardır:

Etkinlik Nabız Ortalama hız Yükseklik değişikliği Konumu kullanma
Yaya 120 bpm 1,4 m/sn 20,0 m/dk. doğru
Çalışıyor 170 bpm 2,3 m/sn 20,0 m/dk. doğru
Doğa yürüyüşü 150 nabız/dk. 1,3 m/sn 20,0 m/dk. doğru
Yüzme 150 nabız/dk. 1,6 m/sn 0,0 m/dk. doğru
Koşu bandında koşma 160 bpm 2,3 m/sn 20,0 m/dk. yanlış

Durdur

Sentezlenmiş etkinliği durdurmak için aşağıdaki komutu kullanın:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices

Özel

Hangi metriklerin oluşturulacağı üzerinde daha hassas bir kontrol için whs.synthetic.user.START_EXERCISE işlem dizesini kullanarak özel bir egzersiz etkinliği başlatın. Aşağıdaki işaretlerin herhangi bir kombinasyonunu sağlayın:

  • --ei exercise_options_duration_secs <int>: Egzersizin saniye cinsinden süresi. Varsayılan: 0.
  • --ei exercise_options_heart_rate <int>: dakikadaki nabız sayısı. Ortalama: 70.
  • --ef exercise_options_average_speed <float>: Metre/saniye cinsinden ortalama hız. Dakikadaki adım sayısını veya ritmi de etkiler. Varsayılan: 0.
  • --ez exercise_options_use_location <boolean>: Varsayılan bir rota kullanılarak egzersiz sırasında konum verilerinin yayınlanıp yayınlanmayacağı. Varsayılan: false.
  • --ef exercise_options_max_elevation_rate <float>: Dakikada metre cinsinden mümkün olan maksimum yükseklik değişim hızı. Varsayılan: 0.

Örneğin, egzersiz seçeneklerini aşağıdaki şekilde ayarlayın:

adb shell am broadcast \
-a "whs.synthetic.user.START_EXERCISE" \
--ei exercise_options_heart_rate 90 \
--ef exercise_options_average_speed 1.2 \
--ez exercise_options_use_location true \
com.google.android.wearable.healthservices

Ayrıca, gerçek veya emüle edilmiş donanımın belirli bir veri türünü destekleyip desteklemediğine bakılmaksızın kullanılabilen veri türlerini de değiştirebilirsiniz. Örneğin, aşağıdaki snippet'te gösterildiği gibi mutlak yüksekliği etkinleştirebilir veya devre dışı bırakabilirsiniz:

# enable synthetic mode and enable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation true \
com.google.android.wearable.healthservices

# enable synthetic mode and disable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation false \
com.google.android.wearable.healthservices

Diğer durumlar ve etkinlikler

Bu bölümde, uyku ve düşme gibi diğer durumların ve etkinliklerin nasıl simüle edileceği açıklanmaktadır.

Uyku durumu

Ayrıca, yapay kullanıcı için uyku durumlarını da tetikleyebilirsiniz. İki durum desteklenir: uyku ve uyanık.

Uyku durumuna girmek için şu komutu çalıştırın:

adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices

Uyanık duruma geçmek için şu komutu çalıştırın:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices

Düşme algılayıcı

Düşme simülasyonu yapmak için şu komutu çalıştırın:

adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices

Sağlık hizmetlerinin düşme olayını bildirmesi bir dakika kadar sürebilir.