Meta veri gereksinimleri

Bu kılavuz, Health Connect'in 1.1.0-alpha12 sürümüyle uyumludur.

1.1.0-alpha12 sürümüne yükseltmeyi tercih eden geliştiriciler için Health Connect'teki meta verilerde değişiklikler yapıldı.

Kütüphane bilgileri

Google Maven Android Gradle eklentisi yapay nesne kimliği, yükseltmeniz gereken Health Connect kitaplığını tanımlar. Bu Health Connect SDK bağımlılığını modül düzeyindeki build.gradle dosyanıza ekleyin:

dependencies {
  implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}

Meta veri değişiklikleri

Ekosistemde ek yararlı meta verilerin bulunmasını sağlamak için Health Connect Jetpack SDK'da 1.1.0-alpha12 sürümünden itibaren iki meta veri değişikliği yapıldı.

Kayıt yöntemini belirtin

Record() türünde bir nesne oluşturulduğunda meta veri ayrıntılarını belirtmeniz gerekir.

Health Connect'e veri yazarken dört kayıt yönteminden birini belirtmeniz gerekir:

Kayıt yöntemi Açıklama
RECORDING_METHOD_UNKNOWN Kayıt yöntemi doğrulanamıyor.
RECORDING_METHOD_MANUAL_ENTRY Kullanıcı verileri girdi.
RECORDING_METHOD_AUTOMATICALLY_RECORDED Veriler bir cihaz veya sensör tarafından kaydedilmiş olmalıdır.
RECORDING_METHOD_ACTIVELY_RECORDED Kullanıcı, bir cihazda kayıt oturumunun başlatılmasını veya sonlandırılmasını sağladı.

Örneğin:

StepsRecord(
    startTime \= Instant.ofEpochMilli(1234L),
    startZoneOffset \= null,
    endTime \= Instant.ofEpochMilli(1236L),
    endZoneOffset \= null,
    metadata \= Metadata.manualEntry(),
    Count \= 10,
)

Cihaz türü

Otomatik olarak ve etkin bir şekilde kaydedilen tüm veriler için bir cihaz türü belirtmeniz gerekir. Mevcut cihaz türleri şunlardır:

Cihaz türü Açıklama
TYPE_UNKNOWN Cihaz türü bilinmiyor.
TYPE_WATCH Cihaz türü kol saati olmalıdır.
TYPE_PHONE Cihaz türü telefon olmalıdır.
TYPE_SCALE Cihaz türü tartıdır.
TYPE_RING Cihaz türü yüzüktür.
TYPE_HEAD_MOUNTED Cihaz türü, başa takılan bir cihazdır.
TYPE_FITNESS_BAND Cihaz türü fitness bandıdır.
TYPE_CHEST_STRAP Cihaz türü göğüs bandı olmalıdır.
TYPE_SMART_DISPLAY Cihaz türü akıllı ekran olmalıdır.

Bazı Device.type değerleri yalnızca Health Connect'in sonraki sürümlerinde kullanılabilir. Genişletilmiş cihaz türleri özelliği kullanılamadığında bu türler Device.TYPE_UNKNOWN olarak kabul edilir.

Genişletilmiş cihaz türleri Açıklama
TYPE_CONSUMER_MEDICAL_DEVICE Cihaz türü tıbbi cihazdır.
TYPE_GLASSES Cihaz türü, akıllı gözlük veya gözlük olmalıdır.
TYPE_HEARABLE Cihaz türü, işitme cihazı olmalıdır.
TYPE_FITNESS_MACHINE Cihaz türü sabit bir makinedir.
TYPE_FITNESS_EQUIPMENT Cihaz türü fitness ekipmanıdır.
TYPE_PORTABLE_COMPUTER Cihaz türü taşınabilir bilgisayardır.
TYPE_METER Cihaz türü ölçüm cihazıdır.
Kullanıcının cihazının Health Connect'te Genişletilmiş Cihaz Türleri'ni destekleyip desteklemediğini belirlemek için istemcide FEATURE_EXTENDED_DEVICE_TYPES kullanılabilirliğini kontrol edin:

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_EXTENDED_DEVICE_TYPES
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}
Daha fazla bilgi edinmek için Özelliklerin kullanılabilirliğini kontrol etme başlıklı makaleyi inceleyin.

Mümkünse cihaz türünün yanı sıra cihazın üreticisini ve modelini de belirtin. Örneğin:

private val TEST_DEVICE = Device(
    manufacturer = "Google",
    model = "Pixel Watch",
    type = Device.TYPE_WATCH
)

Snippet'ler güncellendi

Yeni meta veri şartlarına uymak için yeni snippet'lerin gerektiği her yerde Health Connect kılavuzları güncellendi. Bazı örnekler için Veri Yazma sayfasına bakın.

Yeni meta veri yöntemleri

Meta veriler artık doğrudan oluşturulamaz. Bu nedenle, meta verilerin yeni bir örneğini almak için fabrika yöntemlerinden birini kullanın. Her işlevin üç imza varyantı vardır:

  • activelyRecorded

    • fun activelyRecorded(device: Device): Metadata.
    • fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
    • fun activelyRecordedWithId(id: String, device: Device): Metadata
  • autoRecorded

    • fun autoRecorded(device: Device): Metadata
    • fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
    • fun autoRecordedWithId(id: String, device: Device): Metadata
  • manualEntry

    • fun manualEntry(device: Device? = null): Metadata
    • fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
    • fun manualEntryWithId(id: String, device: Device? = null): Metadata
  • unknownRecordingMethod

    • fun unknownRecordingMethod(device: Device? = null): Metadata
    • fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
    • fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata

Daha fazla bilgi için Android Açık Kaynak Projesi'ne göz atın.

Test verileri

Beklenen meta veri değerlerini taklit etmek için Testing Library'yi kullanın:

private val TEST_METADATA =
    Metadata.unknownRecordingMethod(
        clientRecordId = "clientId",
        clientRecordVersion = 1L,
        device = Device(type = Device.TYPE_UNKNOWN),
    ).populatedWithTestValues(id = "test")

Bu, Health Connect uygulamasının davranışını simüle eder. Health Connect uygulaması, kayıt ekleme sırasında bu değerleri otomatik olarak doldurur.

Test kitaplığı için bu Health Connect SDK bağımlılığını modül düzeyindeki build.gradle dosyanıza eklemeniz gerekir:

dependencies {
  testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}

Kitaplığı yükseltme

Gerçekleştirmeniz gereken ana adımlar şunlardır:

  1. Kitaplığınızı 1.1.0-alpha12 sürümüne yükseltin.

  2. Kitaplık oluşturulurken yeni meta verilerin gerektiği yerlerde derleme hataları verilir. Bu nedenle, Record() türünde bir nesne oluşturulduğunda gerekli meta veri değişikliklerini uyguladığınızdan emin olun. Bu işlemle taşıma tamamlanmalıdır.

  3. Uygulamanız genişletilmiş cihaz türleri yazıyorsa özelliğin kullanılamadığı cihazlarda beklenmedik TYPE_UNKNOWN oluşmasını önlemek için bunları FEATURE_EXTENTED_DEVICE_TYPES ile sınırlayın.