Bu kılavuz, Health Connect'in 1.2.0-alpha05 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'sında 1.1.0-alpha12 sürümünden itibaren iki meta veri değişikliği yapıldı. metadata, Record oluşturucunuza dahil edilmemişse Constructor internal hatası görebilirsiniz.
Kayıt yöntemini belirtme
Record() türü nesnesi her 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 girmiştir. |
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ı sağladı. |
Ö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 olarak ve etkin bir şekilde kaydedilen tüm veriler için bir cihaz türü belirtmeniz gerekir. Daha fazla bilgi için Device sınıfıyla ilgili Jetpack belgelerine bakın. Şu anda desteklenen cihaz türleri:
| Cihaz türü | Açıklama |
|---|---|
TYPE_UNKNOWN |
Cihaz türü bilinmiyor. |
TYPE_WATCH |
Cihaz türü kol saati olmalıdır. |
TYPE_PHONE |
Cihazın türü telefon. |
TYPE_SCALE |
Cihaz türü tartıdır. |
TYPE_RING |
Cihaz türü yüzük olmalıdır. |
TYPE_HEAD_MOUNTED |
Cihaz türü, başa takılan bir cihazdır. |
TYPE_FITNESS_BAND |
Cihaz türü fitness bandı olmalı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 makine olmalıdır. |
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ı olmalı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
}
Ö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ı, Unique Device Identifier (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, sonraki 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 tanımlama
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'nın normal bir izin olduğunu unutmayın. Bunu manifest dosyanızda beyan etmeniz gerekir ancak çalışma zamanında kullanıcıdan istemeniz gerekmez. Bu izin, yükleme sırasında uygulamanıza otomatik olarak verilir.
Yalnızca Cihaz Tanımlayıcısı (DI) bölümünü yazın.
Tam 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ıdır.
- Üretim Tanımlayıcısı (UDI-PI): Birime özgü özellikler (ör. seri numaraları, parti numaraları, üretim tarihleri veya son kullanma tarihleri).
Kullanıcı gizliliğini korumak için Health Connect'teki kodun yalnızca UDI-DI bölümünü doldurun. Üretim tanımlayıcısı özelliklerini (ör. seri numaraları veya parti numaraları) eklemeyin.
Kod örneği
Not: Device örneği oluştururken UDI'yi 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ın gümrükten geçtiğini doğrulamak için UDI'yi kullanma
Health Connect, bir aktarım katmanı olarak işlev görür 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 düzenleyici veritabanlarını sorgulamalıdır.
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:
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'yi ve MetadataTestHelper 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 temel 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ızı doğrulayın:
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ürleri yazıyorsa özelliği kullanılamayan cihazlarda beklenmedik
TYPE_UNKNOWNdeğerlerini önlemek için bu türleriFEATURE_EXTENTED_DEVICE_TYPESile sınırlayın.