Performans için plan yapın

Uygulamanızın Health Connect ile birlikte iyi performans göstermesi için aşağıdaki en iyi uygulama yönergelerine uymanızı öneririz.

Verileri yazma

Uygulamalar Health Connect'e yalnızca kendi kaynaklı verileri yazmalıdır.

Uygulamanızdaki veriler başka bir uygulamadan içe aktarıldıysa kendi verilerini Health Connect'e yazma sorumluluğu diğer uygulamaya geçer.

Verilerin sınırların dışında olması veya dahili sistem hatası gibi yazma istisnalarını ele alan bir mantık uygulamak da iyi bir fikirdir. Geri alma ve yeniden deneme stratejilerinizi bir iş planlama mekanizmasına uygulayabilirsiniz. Health Connect'e yazma işlemi başarısız olursa uygulamanızın bu dışa aktarma noktasını aşabildiğinden emin olun. Teşhise yardımcı olması için hataları günlüğe kaydetmeyi ve bildirmeyi unutmayın.

Verileri izlerken, uygulamanızın veri yazma şekline bağlı olarak uygulayabileceğiniz birkaç öneri vardır.

Pasif izleme

Buna, arka planda sürekli adım kaydetme veya nabız kaydetme gibi pasif fitness ya da sağlık takibi yapan uygulamalar da dahildir.

Uygulamanızın aşağıdaki yöntemleri kullanarak Health Connect'e düzenli aralıklarla veri yazması gerekir:

  • Her senkronizasyonda, yalnızca yeni veriler yazın ve son senkronizasyondan sonra değiştirilen verileri güncelleyin.
  • Yazma isteği başına en fazla 1.000 kayıt için yığın istekleri.
  • En az 15 dakikalık düzenli aralıklarla arka plan görevleri planlamak için WorkManager kullanın.
  • Görevleri yalnızca cihaz boşta ve pil seviyesi düşükken çalışacak şekilde kısıtlayın.

    val constraints = Constraints.Builder()
        .requiresBatteryNotLow()
        .requiresDeviceIdle(true)
        .build()
    
    val writeDataWork = PeriodicWorkRequestBuilder<WriteDataToHealthConnectWorker>(
            15,
            TimeUnit.MINUTES,
            5,
            TimeUnit.MINUTES
        )
        .setConstraints(constraints)
        .build()
    

Etkin izleme

Buna, egzersiz ve uyku gibi etkinliğe dayalı izlemeler veya beslenme gibi manuel kullanıcı girişleri gerçekleştiren uygulamalar da dahildir. Bu kayıtlar, uygulama ön plandayken veya uygulamanın günde birkaç kez kullanıldığı nadir durumlarda oluşturulur.

Uygulamanızın, Health Connect'in etkinlik süresi boyunca çalışmaya devam etmediğinden emin olun.

Veriler Health Connect'e iki şekilde yazılmalıdır:

  • Etkinlik tamamlandıktan sonra verileri Health Connect ile senkronize edin. Örneğin, kullanıcı izlenen egzersiz oturumunu sonlandırdığında verileri senkronize edebilirsiniz.
  • Verileri daha sonra senkronize etmek için WorkManager kullanarak tek seferlik bir görev planlayın.

Örnek hızı

Health Connect'e veri yazarken depolama yükünü azaltmak için uygun örnek hızlarını kullanın. Örneğin, adım sayısı verilerinin ne sıklıkta kaydedilmesi gerektiğini veya aktif bir antrenmana bağlı olan örnek hızı veri türlerini (hız gibi) düşünmek işe yarar.

Her veri türü için aynı örnek hızı gerekmez. Adım sayısı verilerini her 60 saniyede bir gibi daha seyrek aralıklarla güncellemek yerine her saniyede bir güncelleme yapmanın çok az faydası vardır. Bununla birlikte, daha yüksek örnek hızları kullanıcılara sağlık ve fitness verilerine daha ayrıntılı ve ayrıntılı bir bakış sağlayabilir. Örnek hızı sıklıkları, ayrıntı ile performans arasında bir denge kurmalıdır.

Verileri senkronize et

Aşağıdaki faktörler senkronizasyon işlemini etkiler.

Jetonun son kullanma tarihi

Kullanılmayan Changes jetonunun geçerlilik süresi 30 gün içinde dolacağından, böyle bir durumda bilgi kaybını önleyen bir senkronizasyon stratejisi kullanmanız gerekir. Stratejiniz aşağıdaki yaklaşımları içerebilir:

  • Uygulamanızın veri deposunda, en son kullanılan ve ayrıca Health Connect'ten id içeren bir kaydı arayın.
  • Health Connect'ten belirli bir zaman damgasıyla başlayan kayıtları isteme, ardından bunları uygulamanızın veri deposuna ekleme veya güncelleme.
  • Bir dahaki sefere gerekmesi için ayırmak üzere bir Değişiklik jetonu isteyin.

Önerilen Değişiklik yönetimi stratejileri

Uygulamanızın geçersiz veya süresi dolmuş Değişiklik jetonları alması durumunda, mantığınızdaki uygulamalarına bağlı olarak aşağıdaki yönetim stratejilerini öneririz:

  • Tüm verileri okuma ve tekilleştirme. Bu en ideal stratejidir.
    • Health Connect'ten en son ne zaman veri okuduğunu gösteren zaman damgasını depolar.
    • Jeton sona erdiğinde, en son zaman damgasındaki veya son 30 güne ait tüm verileri tekrar okuyun. Ardından, tanımlayıcılar kullanarak daha önce okunan verilerle karşılaştırarak tekilleştirin.
    • Veri güncellemeleri için gerekli olduğundan İstemci Kimliklerini ideal olarak uygulayın.
  • Yalnızca son okuma zaman damgasından bu yana verileri okuyun. Bu durum, Değişiklik jetonunun geçerlilik süresinin dolmasında bazı veri tutarsızlıklarına neden olur ancak dönem birkaç saat ile birkaç gün arasında sürebilecek daha kısadır.
    • Health Connect'ten en son ne zaman veri okuduğunu gösteren zaman damgasını depolar.
    • Jeton sona erdiğinde, bu zaman damgasından itibaren tüm verileri okuyun.
  • Son 30 günün verilerini silin ve ardından okuyun. Bu, ilk entegrasyonda olan işleme daha uygundur.
    • Son 30 günde uygulama tarafından Health Connect'ten okunan tüm veriler silinir.
    • Silme işleminden sonra tüm bu verileri tekrar okuyun.
  • Son 30 güne ait verileri tekilleştirme yapmadan okuma. Bu en ideal stratejidir ve kullanıcılara yinelenen verilerin gösterilmesine yol açar.
    • Son 30 gün içinde uygulama tarafından Health Connect'ten okunan tüm veriler silinir.
    • Yinelenen girişlere izin verin.

Veri türü değişikliği jetonları

Uygulamanız bağımsız olarak birden fazla veri türünü tüketiyorsa her veri türü için ayrı Değişiklik Jetonları kullanın. Changes Sync API ile birden fazla veri türünün listesini yalnızca bu veri türleri birlikte tüketilirse veya hiç kullanılmazsa kullanın.

Ön plan okumaları

Uygulamalar yalnızca ön plandayken Health Connect'ten gelen verileri okuyabilir. Health Connect'teki verileri senkronize ederken Health Connect'e erişim herhangi bir noktada kesilebilir. Örneğin uygulamanız, senkronizasyon sırasında Health Connect'ten büyük miktarda veri okurken kesintileri işlemeli ve bir sonraki açılışında devam etmelidir.

İçe aktarma zamanlaması

Uygulamanız yeni verilerle ilgili bildirim alamaz. Bu nedenle, yeni verileri iki noktada kontrol edin:

  • Uygulamanız ön planda her etkin hale geldiğinde. Bu durumda, yaşam döngüsü etkinliklerini kullanın.
  • Uygulamanız ön planda kalırken belirli aralıklarla. Yeni veriler kullanıma sunulduğunda kullanıcıları bilgilendirerek ekranlarını değişiklikleri yansıtacak şekilde güncellemelerine olanak tanıyın.

Oran sınırları

Health Connect, nadiren de olsa uygulamanızdan gelen isteklere hız sınırları uygular. Bu işlem, pil etkisini ve cihaz performansını sınırlamak için yapılır.

  • Uygulamanızın isteklerinin hız sınırlaması nedeniyle reddedilmesini önlemek için en iyi uygulama kurallarına uymanızı önemle tavsiye ederiz.
  • Uygulamalar hız sınırlamasına karşı dirençli olmalıdır. Örneğin, hız sınırlaması nedeniyle isteklerin başarısız olması durumunda arka plandaki veriler bir sonraki periyodik görev sırasında yazılabilir.

Uygulamanıza ilk katılım

Çoğu uygulamanın, özellik eğitimi veya kullanıcıdan izin isteme gibi özel bir ilk katılım akışı vardır. Geliştiricilerin, Health Connect'in kullanıcı uygulamayla ilk kez etkileşimde bulunduğunda başlattığı ilk katılım etkinliğini dışa aktarmaları kesinlikle önerilir. Bunu yapmak için manifest dosyanıza aşağıdakileri ekleyin:

<!-- Required to support pre-Android 14 devices with APK Health Connect -->
<activity
  android:name=".OnboardingActivity"
  android:exported="true"
  android:permission="com.google.android.apps.healthdata.permission.START_ONBOARDING"
  <intent-filter>
    <action android:name="androidx.health.ACTION_SHOW_ONBOARDING"/>
  </intent-filter>
</activity>
<!-- Required to support Android 14+ devices with platform Health Connect -->
<activity-alias
  android:name="UAndAboveOnboardingActivity"
  android:exported="true"
  android:targetActivity=".OnboardingActivity"
  android:permission="android.permission.health.START_ONBOARDING">
  <intent-filter>
    <action android:name="android.health.connect.action.ACTION_SHOW_ONBOARDING" />
  </intent-filter>
</activity-alias>

Bu özellik henüz Android 14'te desteklenmemektedir, ancak yakında desteklenecektir.

Bir kullanıcı uygulamanızı Health Connect'e bağlamaya çalıştığında dışa aktarılan etkinlik başlatılır. Bu etkinlik aşağıdakileri yapmalıdır:

  • Hangi verilerin yazıldığını veya okunduğunu açıklama gibi alakalı kullanıcı eğitimlerini gösterme.
  • Gerekirse kullanıcıdan izin vermesini isteyin.
  • Health Connect'e bir izin isteği gönderin.
  • Periyodik çalışan programlama gibi uygulamaya özgü diğer tüm mantık yürütün.
  • İşlem tamamlandığında, kullanıcının etkinliği kapatmasına izin verin.

İlk katılım etkinliğini dışa aktarmayan uygulamalarda Health Connect, kullanıcı uygulamayı bağlamaya çalıştığında kullanıcıyı İzinleri yönet ekranına yönlendirir. Entegrasyonun çalışması için tek ön koşulun izin verilmesi olduğu uygulamalarda bu durum kabul edilebilir.

İlk katılım etkinliğinin birden fazla kez başlatılabileceğini unutmayın. Örneğin, kullanıcı daha sonra uygulamanızın izinlerini iptal edip ardından yeniden bağlarsa.