Bu kılavuz, Health Connect'in 1.1.0-alpha12 ve sonraki sürümleriyle uyumludur.
1.1.0-alpha12 veya sonraki sürümlere yükselten 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 bulunduğunu doğrulamaya yardımcı olmak 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 Metadata
öğesini oluşturmak için ilgili fabrika yöntemlerinden birini kullanarak 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. manufacturer
ve model
da belirtilebilir ancak bunlar isteğe bağlıdır. Daha fazla bilgi için Jetpack belgelerindeki Device
sınıfına bakın. 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. Fabrika yöntemleri, verileri kaydetmek için bir cihaz veya sensör kullanıldığında cihaz bilgilerinin sağlandığını doğrular. Manuel olarak girilen veriler için cihaz bilgilerinin sağlanması isteğe bağlıdır. 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 Test Kitaplığı'nı ve MetadataTestHelper
'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ı oluşur. Bu hataları düzeltmek ve taşıma işlemini tamamlamak için aşağıdaki değişiklikleri yaptığınızı doğrulayın:
Record
oluştururken kayıt yöntemi belirtmek zorunludur. Bu işlem,Metadata
içinde sağlanan fabrika yöntemlerinden biri (ör.Metadata.manualEntry()
veyaMetadata.activelyRecorded(device = Device(...))
) kullanılarak yapılır.- Bir cihaz tarafından kaydedilen veriler için
Device.TYPE_WATCH
veyaDevice.TYPE_PHONE
gibi bir cihaz türü belirtmek zorunludur.
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.