Wear OS cihazlarda uygulama uyumluluğunu geliştirme

Wear Health Services API (WHS), sağlık ve fitness geliştiricileri için tutarlı bir entegrasyon yüzeyi sağladığından Wear OS 3 ve sonraki sürümlerin yüklü olduğu tüm cihazlarda zorunlu bir bileşendir. Uygulamanızı, cihazlar arasında uyumluluğu korumak ve kullanıcı deneyimi sorunlarını önlemek için birçok cihaza ve bu cihazların farklı özelliklerine sorunsuz bir şekilde uyum sağlayacak şekilde geliştirin. Bunu yapmak için yalnızca uygulamanızın kullandığı istemciler için bağımlılıkları bildirin. Ayrıca, uygulamanızın kullanılabilirlik durumlarına göre isteğe bağlı gelişmiş metrikleri göstermesine veya kaldırmasına olanak tanıyın.

Farklı sensörler, temel donanım ve sensör platformuna bağlı olarak cihaz başına değişen farklı sıklıklarda veri üretir. Örneğin, bir cihaz bir zaman damgasında kalp atış hızını, başka bir zaman damgasında ise konumu döndürebilir. Farklı zaman damgalarında veya çakışan zaman damgalarında bağımsız veri akışları alabilen uygulamalar oluşturun.

Bu kılavuzda, Wear Health Services'teki çeşitli istemciler tarafından desteklenen beklenen davranışlar ve veri türleri açıklanmaktadır.

Egzersiz istemcisi

Aşağıdaki bölümlerde, ExerciseClient için beklenen davranışlar ve veri türleri açıklanmaktadır.

Beklenen davranışlar

ExerciseClient için bazı egzersiz türleri, belirli veri türlerinin kullanılabilirliğine bağlıdır. Örneğin, tekerlekli sandalye egzersizleri yalnızca tekerlekli sandalye itme hareketleri destekleniyorsa kullanılabilir. Bu seçenekleri belirli bir cihazda kullanılabilirliğine göre etkinleştirin ve devre dışı bırakın.

Çoğu egzersiz verisi türü örneklenir ve bir saniyelik aralıklarla sunulur. Bazı istisnalar vardır:

  • Bazı durumlarda, bazı egzersiz verisi türleri saniyede birden fazla kez güncellenir. Örneğin, kullanıcı koşarken adım sayısı saniyede birden fazla kez güncellenir.
  • Bazı veri türlerinde güncelleme yalnızca mevcut değer önceki değerden farklıysa sağlanır.

Veri teslimi akış halinde veya toplu olarak yapılabilir. Veriler, uygulama işlemcisi açıkken (genellikle ekran açık ve etkileşimli durumdayken) yayınlanır. Ekran kapandığında veya ortam moduna (açık ancak etkileşimli değil) geçtiğinde, güç tasarrufu için veriler toplu olarak işlenir. Toplu veriler, uygulama işlemcisi tekrar açıldığında (ör. kol saati ortam modundan çıktığında) veya toplama arabellekleri dolduğunda (cihaza göre değişir) uygulamaya teslim edilir. Cihaz ortam modundayken örnekleme hızı aynı kalır. Bu nedenle, teslim edilen bir toplu işlemde hâlâ yüksek frekanslı veri noktaları bulunur.

Veri Türleri yalnızca kol saatinin sensörleri tarafından oluşturulan verilerden elde edilir. Örneğin, konum verileri tamamen kol saatinden gelir ve telefondan gelmez.

Veri türleri

ExerciseClient API, farklı türlerdeki antrenmanları başlatmanıza, duraklatmanıza, devam ettirmenize ve durdurmanıza olanak tanır. WHS, her egzersiz için o egzersiz türünde kullanabileceğiniz bir dizi veri türü tanımlar. Bu sayede, belirli bir egzersiz için gerekli olmayan sensörler açılmadığından güç tasarrufu sağlanır ve uygulama mantığınız basitleşir. Örneğin, koşuya başladığınızda konum verileri yalnızca dışarıda yapılan koşular için sağlanır ve izlenir. Bisiklet egzersizi başlatıldığında adım sayısı sağlanmaz veya takip edilmez. Aşağıdaki bölümlerde, ExerciseClient'da desteklenen veri türleri açıklanmaktadır.

Tüm cihazlarda kullanılabilen egzersiz verisi türleri

Aşağıdaki egzersiz verisi türleri tüm cihazlarda kullanılabilir.

  • Örnek veri türlerinin, egzersizdeki minimum, maksimum ve ortalama değerleri döndüren bir _STATS veri türü vardır. Örneğin, PACE istatistikleri PACE_STATS veri türüyle çekilebilir.
  • Aralık veri türlerinin, egzersizden elde edilen kümülatif değeri döndüren karşılık gelen bir _TOTAL veri türü vardır. Örneğin, DISTANCE istatistikleri DISTANCE_TOTAL veri türüyle çekilebilir.
Tablo 1: Tüm cihazlarda kullanılabilen egzersiz verisi türleri
Metrik Beklenen veriler Beklenen davranışlarla ilgili notlar
HEART_RATE_BPM Dakikadaki nabız sayısı [DataType: Double] Tüm cihazlar, egzersiz sırasında saniyede bir kez nabız ölçümü yapar. Bazı cihazlar her saniye bir BPM değeri bildirir. Bazı cihazlar yalnızca önceki değerden farklı bir değer olduğunda kalp atış hızını bildirir. Tüm cihazlarda her saniyede bir BPM değeri almayı beklemeyin.
KONUM Enlem ve boylam [DataType: Double] Konum verileri yalnızca kol saatinin GPS'ine dayanır. Konum verilerinin Fused Location Provider'dan veya diğer Android hizmetlerinden gelmesini beklemeyin. Her veri noktası, doğruluk değeri (yatay konum hatası olarak da bilinir) ve kullanılabilirlik bilgilerini de içerir.
ADIMLAR [Veri türü: Uzun] Adım sayısı, egzersiz süresince toplam adım sayısıdır. Egzersizin duraklatıldığı süre dahil değildir.
MESAFE Metre [Veri türü: Çift] Mevcut olduğunda GPS tabanlı konumdan, aksi takdirde adımlardan hesaplanır. Toplam, egzersizin duraklatıldığı süre hariç olmak üzere egzersiz süresince yapılan toplamı ifade eder.
HIZ [metre / saniye] [Veri türü: Çift] Minimum, maksimum ve ortalama değerleri döndürür. Bunlar, egzersizin duraklatıldığı süre hariç olmak üzere egzersiz süresince geçerlidir.
PACE [saniye / metre] [Veri türü: Çift] Hız 0 ise varsayılan değer 0'dır. Ortalamalar, egzersizin duraklatıldığı süre hariç olmak üzere egzersiz süresi boyunca hesaplanır.
ELEVATION_GAIN Metre. [Veri türü: Çift] Yükseklikteki olumlu değişiklikler. Toplam, egzersizin duraklatıldığı süre hariç olmak üzere egzersiz süresi boyunca bildirilir.
TOTAL_CALORIES kCal [Veri türü: Çift] Yakılan aktif kalori, bazal metabolizma hızına eklenir. Burada belirtilen kaloriler, sistem ayarlarında belirtildiği gibi kullanıcının boyunu, kilosunu, yaşını ve cinsiyetini dikkate alır. Kaloriler, uygulamanızda toplanan kullanıcı profili verilerini dikkate almaz. Bildirilen toplam, egzersizin duraklatıldığı süre hariç olmak üzere egzersiz süresince yakılan kaloridir.

İsteğe bağlı egzersiz veri türleri

Aşağıdaki veri türleri listesi yalnızca belirli cihazlarda kullanılabilir. DataTypes öğelerinin tam listesi için Jetpack referansına bakın. Bir DataType, önceki "gerekli/garantili" listesinde yer almıyorsa isteğe bağlıdır.

İsteğe bağlı veri türleriyle ilgili aşağıdaki örneklere bakın. Bu listede tüm örneklere yer verilmemiştir:

Tablo 2: İsteğe bağlı egzersiz veri türleri örnekleri
Metrik Beklenen veriler Beklenen davranışlarla ilgili notlar
ABSOLUTE_ELEVATION [Veri türü: Çift]
ELEVATION_LOSS Metre [Veri türü: Çift] Yükseklikteki negatif değişiklikler. Değer pozitif olmalıdır. Örneğin, 1 metrelik yükseklik kaybı -1 değil 1 olarak döndürülür.
STEPS_PER_MINUTE [Veri türü: Uzun]
WHEELCHAIR_PUSHES [Veri türü: Uzun] Tekerlekli sandalye egzersizlerinde kullanılmak üzere tekerlekli sandalye itme sayısı.
REP_COUNT [Veri türü: Uzun]
SWIM_STROKE_COUNT [Veri türü: Uzun]
SWIM_LAP_COUNT [Veri türü: Uzun]

Egzersiz başına veri türleri

Her egzersiz türü için farklı veri türleri döndürülür. Döndürülen veri türleri, alıştırmanın ihtiyaçlarıyla tutarlıdır. Örneğin, BIKING Egzersiz Türü, STEPS Veri Türü'nü döndürmez. Kullanıcının cihazında hangi veri türlerinin desteklendiğini belirlemek için çalışma zamanında Capabilities yöntemini kullanın.

Tüm egzersiz türleri en azından kalp atış hızı ve kalori verilerini döndürür. Diğer alıştırmalar, alıştırmanın gerekliliklerine bağlı olarak ek veri türlerini destekleyebilir.

Aşağıda birkaç örnek verilmiştir:

  • Meditasyon veya pilates gibi egzersizler yalnızca kalp atış hızını ve kaloriyi destekler.
  • Basketbol veya badminton gibi egzersizlerde nabız, kalori, mesafe ve adım sayısı desteklenir.
  • Yürüyüş ve koşu gibi egzersizlerde nabız, kalori, mesafe, adım sayısı, hız ve tempo desteklenir.
  • Yüzme etkinliğinde nabız, kalori, mesafe ve yüzme turları desteklenir.

Pasif İzleme İstemcisi

Nabız
ve adım sayısı gibi sağlık ve fitness verilerini pasif olarak izleyen uygulamaları desteklemek için Wear OS çalıştıran tüm cihazlarda aşağıdaki veri türleri gereklidir. Bu Veri Türlerinin her biri yalnızca saatteki sensörler tarafından oluşturulan verilerden elde edilmelidir.

Beklenen davranışlar

Güç tasarrufu için Pasif İzleme kullanılarak elde edilen sensör okumaları MCU'da saklanır ve Health Services'e toplu olarak gönderilir. Bu toplu sonuçlar, sistem davranışına bağlı olarak farklı aralıklarla döndürülür. Örneğin, sensör arabellekleri dolu olduğunda veya kullanıcı ekranla etkileşimde bulunduğunda toplu olarak veri döndürme.

Veri türleri için önceden tanımlanmış veya tahmin edilebilir toplu işleme aralıkları olduğunu varsaymayın.

Pasif izleme veri türleri

Tablo 3: Wear OS cihazlar için gerekli pasif izleme veri türleri
Metrik Beklenen veriler Notlar
HEART_RATE_BPM Dakikadaki nabız sayısı [Veri türü: Çift] Cihazlar, kalp atış hızı ölçümlerini farklı aralıklarla döndürebilir. Bazı cihazlar her saniye okuma yapabilir. Diğer cihazlar on dakikada bir ölçüm yapabilir. Bu aralıklar uygulamalara sunulmaz. Uygulamalar, farklı örnekleme aralıklarına sorunsuz bir şekilde uyum sağlamalıdır.
STEPS_DAILY/STEPS [Veri türü: Uzun] Günlük adım sayısı, son sıfırlamadan bu yana atılan toplam adım sayısıdır. Bu sayı, gece yarısı WHS tarafından tetiklenir. Buna, etkin bir egzersiz duraklatıldığında yapılan adımlar da dahildir. Adımlar, son kontrolden bu yana geçen süredeki ayrıntılı değişikliktir.
DISTANCE_DAILY/DISTANCE metre [Veri türü: Çift] İvme ölçer/Adımlar'dan hesaplanır. Konum hizmetlerini devre dışı bırakan kullanıcıların doğru adım sayısı alabilmesi için GPS sırasında hesaplama yapmayın.
HIZ [metre / saniye] [Veri türü: Çift]
CALORIES_DAILY kCal [Veri türü: Çift] Aktif kalori ve BMR dahil olmak üzere gün içinde harcanan kalori miktarı. Burada verilen kalori değeri, sistem ayarlarında belirtilen kullanıcının boyunu, kilosunu, yaşını ve cinsiyetini dikkate alır. Kaloriler, uygulamanızda toplanan kullanıcı profili verilerine göre ayarlanmaz.
RUNNING_STEPS (isteğe bağlı) [Veri türü: Uzun] Hem egzersiz sırasında hem de diğer zamanlarda adım sayısı farkı. İkisini de aynı anda izleyin.
WALKING_STEPS (isteğe bağlı) [Veri türü: Uzun]
ELEVATION_GAIN metre [Veri türü: Çift] Yalnızca yükseklikteki pozitif değişimleri içerir.
ELEVATION_LOSS metre [Veri türü: Çift] Yalnızca yükseklikteki negatif değişimleri içerir.
FLOORS_DAILY [Veri türü: Çift] "Kısmi" katlar olarak gösterilebilir.

Pasif izleme günlük hedefleri

Tablo 4: Pasif izleme günlük hedefleri metrikleri
Metrik Beklenen veriler Notlar
STEPS_DAILY [Veri türü: Uzun] Aktif bir egzersiz duraklatılmışken atılan adımlar da dahil olmak üzere günlük adım sayısı, son sıfırlamadan bu yana atılan toplam adım sayısıdır. WHS, gece yarısında sıfırlanır.
FLOORS_DAILY [Veri türü: Çift] Merdivenlerin "kısmi" katları olarak gösterilebilir.
CALORIES_DAILY kCal [Veri türü: Çift] Günlük kalori miktarı (aktif kalori ve BMR dahil).
DISTANCE_DAILY metre [Veri türü: Çift] İvme ölçer veya adım sayısından hesaplanır. Konum hizmetlerini devre dışı bırakan kullanıcıların doğru adım sayısı alabilmesi için bu değeri GPS kullanarak hesaplamayın.
DAILY_ELEVATION_GAIN metre [Veri türü: Çift] Yalnızca yükseklikteki pozitif değişimleri içerir.

MeasureClient

Belirli bir andaki nabzı ölçmek için MeasureClient simgesini kullanın.

Beklenen davranışlar

MeasureClient ve PassiveClient bazı açılardan benzerdir. İkisi de egzersizle ilgili olmayan, toplu olmayan sağlık istatistikleri sağlar. Kalp atış hızını ölçmek için her ikisini de kullanabilirsiniz ancak temel fark, MeasureClient kalp atış hızı verilerinin kullanılabilirliğini içerirken PassiveClient kullanılabilirlik bilgilerini içermez.

Veri türleri

Tablo 5: MeasureClient veri türleri
Metrik Beklenen veriler Notlar
HEART_RATE_BPM Dakikadaki nabız sayısı [Veri türü: Çift] Müsaitlik durumu da dahildir.

Desteklenen özellikler

Cihazlar, Egzersiz Veri Türleri ve Pasif İzleme Veri Türleri'ne ek olarak, etkinlikleri tetiklemek (ör. egzersize başlama) ve durumu ölçmek (ör. uykuya dalma ve uyanma) için ek özellikleri destekler. Bu özelliklerden bazıları tüm cihazlarda, bazıları ise yalnızca belirli cihazlarda kullanılabilir.

Etkinlik tetikleyicileri

Tüm cihazlar aşağıdaki yaygın tetikleyicileri destekler:

  • Mesafe ve adım sayısı için günlük hedefler
  • Adım, mesafe ve süre için egzersiz hedefleri.

Diğer cihazlar daha gelişmiş etkinlik tetikleyicilerini destekleyebilir. Örnek olarak aşağıdakiler verilebilir:

  • Yüzerken turları sayma
  • Yakılan kaloriyle ilgili egzersiz hedefleri
  • Anlık hız için egzersiz hedefleri

Eyaletler

Tüm cihazlar temel durum işlevini destekler. Durum işlevi, kullanıcının aktif bir egzersiz yapıp yapmadığını ifade eder.

Diğer cihazlar ek durum işlevleri sunabilir. Egzersizin otomatik olarak duraklatılıp duraklatılmadığını veya otomatik olarak devam ettirilip ettirilmediğini ya da kullanıcının uyanık mı yoksa uyuyor mu olduğunu algılama gibi ek durum işlevleri de vardır.

Pasif izlemede sağlık uyarıları

Bazı cihazlar sağlık uyarılarını destekler. Bu özellikler tüm cihazlarda desteklenmez. Bazı sağlık uyarıları, kalp atış hızındaki anormallikleri veya düşmeleri tespit etmeyi içerir.