Panduan ini kompatibel dengan Health Connect versi 1.2.0-alpha05 dan yang lebih baru.
Ada perubahan pada metadata di Health Connect untuk developer yang mengupgrade ke rilis 1.1.0-alpha12 atau yang lebih baru.
Informasi perpustakaan
ID artefak plugin Gradle Android Google Maven
mengidentifikasi library Health Connect yang perlu Anda upgrade.
Tambahkan dependensi Health Connect SDK ini ke file build.gradle level
modul Anda:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
Perubahan metadata
Dua perubahan metadata telah diperkenalkan ke Health Connect Jetpack SDK
mulai dari versi 1.1.0-alpha12 untuk membantu memverifikasi bahwa metadata tambahan yang berguna
ada di ekosistem. Jika metadata tidak disertakan dalam konstruktor
Record, Anda mungkin melihat error Constructor internal.
Menentukan metode perekaman
Anda harus menentukan detail metadata setiap kali
objek jenis Record() dibuat instance-nya.
Saat menulis data ke Health Connect, Anda harus menentukan salah satu dari empat metode perekaman
dengan menggunakan salah satu metode pabrik yang sesuai
untuk membuat instance Metadata:
| Metode perekaman | Deskripsi |
|---|---|
RECORDING_METHOD_UNKNOWN |
Metode perekaman tidak dapat diverifikasi. |
RECORDING_METHOD_MANUAL_ENTRY |
Pengguna memasukkan data. |
RECORDING_METHOD_AUTOMATICALLY_RECORDED |
Perangkat atau sensor merekam data. |
RECORDING_METHOD_ACTIVELY_RECORDED |
Pengguna memulai atau mengakhiri sesi perekaman di perangkat. |
Contoh:
StepsRecord( startTime = Instant.ofEpochMilli(1234L), startZoneOffset = null, endTime = Instant.ofEpochMilli(1236L), endZoneOffset = null, metadata = Metadata.activelyRecorded(device = Device(type = Device.TYPE_WATCH)), count = 10 )
Jenis perangkat
Anda harus menentukan jenis perangkat untuk semua data yang direkam secara otomatis dan aktif. Untuk mengetahui detail selengkapnya, lihat class
Device di dokumentasi Jetpack. Jenis perangkat saat ini meliputi:
| Jenis perangkat | Deskripsi |
|---|---|
TYPE_UNKNOWN |
Jenis perangkat tidak diketahui. |
TYPE_WATCH |
Jenis perangkat adalah smartwatch. |
TYPE_PHONE |
Jenis perangkat adalah ponsel. |
TYPE_SCALE |
Jenis perangkat adalah timbangan. |
TYPE_RING |
Jenis perangkat adalah cincin. |
TYPE_HEAD_MOUNTED |
Jenis perangkat adalah perangkat yang dipasang di kepala. |
TYPE_FITNESS_BAND |
Jenis perangkat adalah gelang kebugaran. |
TYPE_CHEST_STRAP |
Jenis perangkatnya adalah tali dada. |
TYPE_SMART_DISPLAY |
Jenis perangkat adalah layar smart. |
Beberapa nilai Device.type hanya tersedia di Health Connect versi yang lebih baru. Jika fitur jenis perangkat yang diperluas tidak tersedia, jenis ini diperlakukan sebagai Device.TYPE_UNKNOWN.
| Jenis perangkat yang diperluas | Deskripsi |
|---|---|
TYPE_CONSUMER_MEDICAL_DEVICE |
Jenis perangkat adalah perangkat medis. |
TYPE_GLASSES |
Jenis perangkat adalah sepasang kacamata pintar atau perangkat kacamata. |
TYPE_HEARABLE |
Jenis perangkat adalah perangkat dengar. |
TYPE_FITNESS_MACHINE |
Jenis perangkat adalah mesin stasioner. |
TYPE_FITNESS_EQUIPMENT |
Jenis perangkat adalah peralatan kebugaran. |
TYPE_PORTABLE_COMPUTER |
Jenis perangkat adalah komputer portabel. |
TYPE_METER |
Jenis perangkat adalah alat pengukur. |
FEATURE_EXTENDED_DEVICE_TYPES di klien:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_EXTENDED_DEVICE_TYPES
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
Contoh:
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 )
Kode Identifikasi Perangkat Unik (UDI)
Untuk Health Connect di Android 17 (level API 37.1) atau
ekstensi U 23 atau yang lebih baru, class Device menyertakan dukungan untuk ID Perangkat Unik (UDI). Mengaitkan detail model UDI terdaftar perangkat medis dengan catatan tertulis Anda memungkinkan aplikasi hilir (seperti platform telemedis atau portal klinis) mengidentifikasi pembacaan tingkat klinis dan membedakannya dari data umum perangkat wearable konsumen.
Mendeklarasikan izin
Untuk menulis detail UDI ke Health Connect, Anda harus mendeklarasikan izin
WRITE_DEVICE_UDI dalam file AndroidManifest.xml aplikasi Anda:
<uses-permission android:name="android.permission.health.WRITE_DEVICE_UDI" />
Perhatikan bahwa WRITE_DEVICE_UDI adalah izin normal. Anda harus mendeklarasikannya di
manifes, tetapi Anda tidak perlu memintanya dari pengguna saat runtime. Izin ini diberikan secara otomatis ke aplikasi Anda pada waktu penginstalan.
Tulis hanya bagian ID Perangkat (DI)
UDI lengkap berisi dua bagian:
- ID Perangkat (UDI-DI): ID yang diakui secara global yang ditetapkan ke model perangkat tertentu oleh lembaga penerbit (misalnya, GS1).
- ID Produksi (UDI-PI): Atribut khusus unit, seperti nomor seri, nomor batch, tanggal pembuatan, atau tanggal habis masa berlaku.
Untuk melindungi privasi pengguna, hanya isi bagian UDI-DI kode di Health Connect. Jangan sertakan atribut ID produksi apa pun (seperti nomor seri atau nomor batch).
Contoh kode
Catatan: Anda dapat menyetel UDI saat membuat instance Device.
Jetpack SDK
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()
Jika Anda menulis data dengan UDI tanpa mendeklarasikan izin WRITE_DEVICE_UDI, Health Connect akan menampilkan SecurityException pada waktu penulisan.
Menggunakan UDI untuk memverifikasi izin perangkat
Health Connect berfungsi sebagai lapisan transportasi dan tidak memvalidasi keaslian atau status pendaftaran UDI.
Untuk pembaca data, keberadaan UDI menunjukkan bahwa data berasal dari perangkat medis terdaftar. Aplikasi baca harus mengkueri database peraturan seperti Global Unique Device Identification Database (GUDID) FDA atau EUDAMED Uni Eropa untuk memverifikasi klasifikasi perangkat, status izin peraturan (misalnya, Kelas I, II, atau III), atau penggunaan khusus yang dimaksudkan.
Cuplikan diperbarui
Panduan Health Connect telah diperbarui di mana pun cuplikan baru diperlukan untuk mematuhi persyaratan metadata baru. Untuk beberapa contoh, lihat halaman Menulis Data.
Metode metadata baru
Metadata tidak dapat lagi di-instantiate secara langsung, jadi gunakan salah satu metode factory untuk mendapatkan instance metadata baru. Metode factory memverifikasi bahwa informasi perangkat diberikan saat perangkat atau sensor digunakan untuk merekam data. Untuk data yang dimasukkan secara manual, memberikan informasi perangkat tetap bersifat opsional. Setiap fungsi memiliki tiga varian tanda tangan:
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
Untuk mengetahui informasi selengkapnya, lihat Project Open Source Android.
Menguji data
Gunakan Testing Library dan
MetadataTestHelper untuk meniru nilai metadata yang diharapkan:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
Hal ini menyimulasikan perilaku penerapan Health Connect, yang otomatis mengisi nilai ini selama penyisipan kumpulan data.
Untuk library pengujian, Anda perlu menambahkan dependensi Health Connect SDK ini ke
file build.gradle level modul:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
Mengupgrade library
Langkah utama yang perlu Anda lakukan adalah:
Upgrade library Anda ke 1.1.0-alpha12.
Saat membangun library, error kompilasi akan ditampilkan jika metadata baru diperlukan. Untuk mengatasi error ini dan menyelesaikan migrasi, pastikan Anda melakukan perubahan berikut:
- Anda wajib menentukan metode perekaman saat membuat
Record. Hal ini dilakukan dengan menggunakan salah satu metode factory yang disediakan diMetadata, sepertiMetadata.manualEntry()atauMetadata.activelyRecorded(device = Device(...)). - Untuk data yang direkam oleh perangkat, jenis perangkat harus ditentukan, seperti
Device.TYPE_WATCHatauDevice.TYPE_PHONE.
- Anda wajib menentukan metode perekaman saat membuat
Jika aplikasi Anda menulis jenis perangkat yang diperluas, batasi dengan
FEATURE_EXTENTED_DEVICE_TYPESuntuk menghindariTYPE_UNKNOWNyang tidak terduga di perangkat yang tidak memiliki fitur tersebut.