Bu kılavuz, Health Connect 1.2.0-alpha05 veya sonraki sürümlerle uyumludur.
1.1.0-alpha12 veya sonraki bir sürüme 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 yapı kimliği, yükseltmeniz gereken Health Connect kitaplığını tanımlar.
Bu Health Connect SDK'sı 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 başka faydalı meta verilerin de bulunduğunu doğrulamaya yardımcı olmak için 1.1.0-alpha12 sürümünden itibaren Health Connect Jetpack SDK'sında iki meta veri değişikliği yapıldı. Record oluşturucunuza metadata dahil edilmezse Oluşturucu dahili hatası görebilirsiniz.
Kayıt yöntemini belirtme
Bir Record() türü nesne örneklendirildiğinde meta veri ayrıntılarını belirtmeniz gerekir.
Health Connect'e veri yazarken Metadata örneğini 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ştir. |
RECORDING_METHOD_ACTIVELY_RECORDED |
Kullanıcı, bir cihazda kayıt oturumunun başlatılmasını veya sonlandırılmasını tetikledi. |
Örneğin:
StepsRecord( startTime = Instant.ofEpochMilli(1234L), startZoneOffset = null, endTime = Instant.ofEpochMilli(1236L), endZoneOffset = null, metadata = Metadata.activelyRecorded(device = Device(type = Device.TYPE_WATCH)), count = 10 )
Cihaz türü
Otomatik ve etkin bir şekilde kaydedilen tüm veriler için cihaz türü belirtmeniz gerekir. 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ü saat. |
TYPE_PHONE |
Cihaz türü telefon. |
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 cihazdır. |
TYPE_FITNESS_BAND |
Cihaz türü fitness bandıdır. |
TYPE_CHEST_STRAP |
Cihaz türü göğüs kemeridir. |
TYPE_SMART_DISPLAY |
Cihaz türü akıllı ekrandı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üktür. |
TYPE_HEARABLE |
Cihaz türü, işitilebilir cihazdı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 özelliğinin 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
}
Örneğin:
val WATCH_DEVICE = Device( manufacturer = "Google", model = "Pixel Watch", type = Device.TYPE_WATCH ) // Phone val PHONE_DEVICE = Device( manufacturer = "Google", model = "Pixel 8", type = Device.TYPE_PHONE ) // Ring val RING_DEVICE = Device( manufacturer = "Oura", model = "Ring Gen3", type = Device.TYPE_RING ) // Scale val SCALE_DEVICE = Device( manufacturer = "Withings", model = "Body Comp", type = Device.TYPE_SCALE )
Benzersiz Cihaz Tanımlayıcısı (UDI)
Android 17 (API düzeyi 37.1) veya U uzantısı 23 ya da sonraki sürümlerdeki Health Connect için Device sınıfı, Benzersiz Cihaz Tanımlayıcı (UDI) desteği içerir. Tıbbi cihazın kayıtlı UDI model ayrıntılarını yazılı kayıtlarınızla ilişkilendirmek, alt uygulamaların (ör. uzaktan sağlık hizmeti platformları veya klinik portalları) klinik düzeydeki ölçümleri tanımlamasına ve bunları genel tüketici giyilebilir cihaz verilerinden ayırt etmesine olanak tanır.
İzni beyan etme
UDI ayrıntılarını Health Connect'e yazmak için uygulamanızın AndroidManifest.xml dosyasında WRITE_DEVICE_UDI iznini beyan etmeniz gerekir:
<uses-permission android:name="android.permission.health.WRITE_DEVICE_UDI" />
WRITE_DEVICE_UDI izninin normal bir izin olduğunu unutmayın. Bu izni manifest dosyanızda beyan etmeniz gerekir ancak çalışma zamanında kullanıcıdan istemeniz gerekmez. Yükleme sırasında uygulamanıza otomatik olarak verilir.
Yalnızca Cihaz Tanımlayıcı (DI) kısmını yazın.
Eksiksiz bir UDI iki bölümden oluşur:
- Cihaz Tanımlayıcısı (UDI-DI): Bir yetkili kurum (ör. GS1) tarafından belirli bir cihaz modeline atanan, dünya genelinde tanınan bir tanımlayıcı.
- Üretim Tanımlayıcısı (UDI-PI): Seri numaraları, parti numaraları, üretim tarihleri veya son kullanma tarihleri gibi birime özgü özellikler.
Kullanıcı gizliliğini korumak için Health Connect'te kodun yalnızca UDI-DI kısmını doldurun. Üretim tanımlayıcı özellikleri (ör. seri numaraları veya parti numaraları) eklemeyin.
Kod örneği
Not: UDI'yi bir Device örneği oluştururken ayarlayabilirsiniz.
Jetpack SDK'sı
val device = Device( type = Device.TYPE_CONSUMER_MEDICAL_DEVICE, manufacturer = "Omron", model = "HEM-7121", udi = "04015674011832" // Device Identifier (UDI-DI) portion only )
Platform API
val device = Device.Builder() .setType(Device.DEVICE_TYPE_CONSUMER_MEDICAL_DEVICE) .setManufacturer("Omron") .setModel("HEM-7121") .setUdi("04015674011832") // Device Identifier (UDI-DI) portion only .build()
WRITE_DEVICE_UDI iznini beyan etmeden UDI ile veri yazarsanız Health Connect, yazma sırasında SecurityException hatası verir.
Cihaz onayını doğrulamak için UDI kullanma
Health Connect, taşıma katmanı olarak görev yapar ve UDI'nin gerçekliğini veya kayıt durumunu doğrulamaz.
Veri okuyucular için UDI'nin varlığı, verilerin kayıtlı bir tıbbi cihazdan geldiğini gösterir. Okuma uygulamaları; cihaz sınıflandırmalarını, yasal izin durumunu (ör. Sınıf I, II veya III) ya da belirli kullanım amacını doğrulamak için FDA'nın Global Unique Device Identification Database (GUDID) veya AB'nin EUDAMED gibi yasal düzenleme veritabanlarını sorgulamalıdır.
Snippet'ler güncellendi
Health Connect kılavuzları, yeni meta veri şartlarına uymak için yeni snippet'lerin gerektiği her yerde güncellendi. Bazı örnekler için Veri Yazma sayfasına bakın.
Yeni meta veri yöntemleri
Meta veriler artık doğrudan örneklendirilemediğinden yeni bir meta veri örneği 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:
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 bakın.
Test verileri
Beklenen meta veri değerlerini taklit etmek için Testing Library 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, kayıt ekleme sırasında bu değerleri otomatik olarak dolduran Health Connect uygulamasının davranışını simüle eder.
Test kitaplığı için bu Health Connect SDK'sı 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ığı yeni sürüme geçirme
Uygulamanız 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ı gösterilir. Bu hataları düzeltmek ve taşıma işlemini tamamlamak için aşağıdaki değişiklikleri yaptığınızdan emin olun:
Recordoluştururken kayıt yöntemi belirtmek zorunludur. Bu işlem,Metadataiç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_WATCHveyaDevice.TYPE_PHONEgibi bir cihaz türü belirtmek zorunludur.
Uygulamanız genişletilmiş cihaz türlerini yazıyorsa özelliğin kullanılamadığı cihazlarda beklenmedik
TYPE_UNKNOWNhatalarını önlemek için bunlarıFEATURE_EXTENTED_DEVICE_TYPESile engelleyin.