Persyaratan metadata

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.
Untuk menentukan apakah perangkat pengguna mendukung Jenis Perangkat yang Diperluas di Health Connect, periksa ketersediaan 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
}
Lihat Memeriksa ketersediaan fitur untuk mempelajari lebih lanjut.

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:

  1. Upgrade library Anda ke 1.1.0-alpha12.

  2. 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 di Metadata, seperti Metadata.manualEntry() atau Metadata.activelyRecorded(device = Device(...)).
    • Untuk data yang direkam oleh perangkat, Anda wajib menentukan jenis perangkat, seperti Device.TYPE_WATCH atau Device.TYPE_PHONE.
  3. Jika aplikasi Anda menulis jenis perangkat yang diperluas, batasi dengan FEATURE_EXTENTED_DEVICE_TYPES untuk menghindari TYPE_UNKNOWN yang tidak terduga di perangkat yang tidak memiliki fitur tersebut.