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. |
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
}
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:
activelyRecordedfun activelyRecorded(device: Device): Metadata.fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadatafun activelyRecordedWithId(id: String, device: Device): Metadata
autoRecordedfun autoRecorded(device: Device): Metadatafun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadatafun autoRecordedWithId(id: String, device: Device): Metadata
manualEntryfun manualEntry(device: Device? = null): Metadatafun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadatafun manualEntryWithId(id: String, device: Device? = null): Metadata
unknownRecordingMethodfun unknownRecordingMethod(device: Device? = null): Metadatafun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadatafun 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:
Kitaplığınızı 1.1.0-alpha12 sürümüne yükseltin.
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.Uygulamanız genişletilmiş cihaz türleri yazıyorsa özelliğin kullanılamadığı cihazlarda beklenmedik
TYPE_UNKNOWNoluşmasını önlemek için bunlarıFEATURE_EXTENTED_DEVICE_TYPESile sınırlayın.