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:
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:
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_UNKNOWN
oluşmasını önlemek için bunlarıFEATURE_EXTENTED_DEVICE_TYPES
ile sınırlayın.