Panduan ini kompatibel dengan Health Connect versi 1.1.0-alpha12 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:
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.
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.manualEntry(),
Count = 10,
)
Jenis perangkat
Anda wajib menentukan jenis perangkat untuk semua data yang direkam secara otomatis dan aktif. Meskipun manufacturer
dan model
juga dapat ditentukan, keduanya bersifat opsional. 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 skala. |
TYPE_RING |
Jenis perangkat adalah cincin. |
TYPE_HEAD_MOUNTED |
Jenis perangkat adalah perangkat yang dipasang di kepala. |
TYPE_FITNESS_BAND |
Jenis perangkatnya adalah gelang kebugaran. |
TYPE_CHEST_STRAP |
Jenis perangkat 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 akan diperlakukan sebagai Device.TYPE_UNKNOWN
.
Jenis perangkat yang diperluas | Deskripsi |
---|---|
TYPE_CONSUMER_MEDICAL_DEVICE |
Jenis perangkat adalah perangkat medis. |
TYPE_GLASSES |
Jenis perangkat adalah kacamata smart 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
}
Jika memungkinkan, berikan produsen dan model perangkat selain jenis perangkat. Contoh:
private val TEST_DEVICE = Device(
manufacturer = "Google",
model = "Pixel Watch",
type = Device.TYPE_WATCH
)
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 dibuat instance secara langsung, jadi gunakan salah satu metode factory untuk mendapatkan instance metadata baru. Metode pabrik 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:
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
Untuk mengetahui informasi selengkapnya, lihat Project Open Source Android.
Menguji data
Gunakan Testing Library dan
MetadataTestHelper
untuk membuat tiruan 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 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 muncul 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, Anda wajib menentukan jenis perangkat, seperti
Device.TYPE_WATCH
atauDevice.TYPE_PHONE
.
- Anda wajib menentukan metode perekaman saat membuat
Jika aplikasi Anda menulis jenis perangkat yang diperluas, batasi dengan
FEATURE_EXTENTED_DEVICE_TYPES
untuk menghindariTYPE_UNKNOWN
yang tidak terduga di perangkat yang tidak memiliki fitur tersebut.