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

Uygulamanızı, egzersiz gerçekten 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 sonraki sürümlerin çalıştığı 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, Wear OS'in önceki sürümlerinde sentetik verilerin oluşturulma şekline kıyasla çeşitli iyileştirmeler sunar:

yükseltmeniz gerekir.

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

Android Studio Koala Feature Drop (Canary), Wear OS'te bir Sağlık Hizmetleri sensör paneli 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 bu 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çma Farklı Android destekli cihazlarda kullanılabilen sensörlerin listesini gösteren Wear Sağlık Hizmetleri paneli açılır.

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

  • Bir sonraki alıştırma sırasında etkinleştirilecek özellikler grubunu seçmek için Standart özellikler ve Tüm özellikler (varsayılan) arasında geçiş yapın. Onay kutularını işaretleyerek özellikleri tek tek 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ının uyku etkinliklerini tetikleyebilir ve kullanıcının golf sahasında veya mini golf sahasında yaptığı golf atış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 için Uygula'yı seçin. Bu özellik, 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 kullanışlı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ıncaklı Vuruş 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 sentetik 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

Yapay 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şlatma

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 metriklerle ilgili 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>: saniyede metre 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

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.