Persyaratan metadata

Panduan ini kompatibel dengan Health Connect versi 1.1.0-alpha12.

Ada perubahan pada metadata di Health Connect untuk developer yang memilih untuk mengupgrade ke rilis 1.1.0-alpha12.

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 memastikan bahwa metadata tambahan yang berguna ada di ekosistem.

Anda harus menentukan detail metadata setiap kali objek jenis Record() dibuat instance-nya.

Anda harus menentukan salah satu dari empat metode perekaman saat menulis data ke Health Connect:

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,
)

Anda wajib menentukan jenis perangkat untuk semua data yang direkam secara otomatis dan aktif. 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.

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. 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 untuk mengejek 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, jadi pastikan untuk menerapkan perubahan metadata yang diperlukan setiap kali objek jenis Record() diinstansiasi. Tindakan ini akan menyelesaikan migrasi.