Esta guía es compatible con la versión 1.1.0-alpha12 de Health Connect.
Se realizaron cambios en los metadatos de Health Connect para los desarrolladores que eligen actualizar a la versión 1.1.0-alpha12.
Información de la biblioteca
El ID del artefacto del complemento de Gradle de Google Maven Android identifica la biblioteca de Health Connect a la que deberás actualizar.
Agrega esta dependencia del SDK de Health Connect a tu archivo build.gradle
del módulo:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
Cambios en los metadatos
Se introdujeron dos cambios en los metadatos del SDK de Health Connect Jetpack a partir de la versión 1.1.0-alpha12 para garantizar que existan metadatos útiles adicionales en el ecosistema.
Debes especificar los detalles de los metadatos cada vez que se cree una instancia de un objeto de tipo Record()
.
Debes especificar uno de los cuatro métodos de grabación cuando escribas datos en Health Connect:
Método de grabación | Descripción |
---|---|
RECORDING_METHOD_UNKNOWN |
No se puede verificar el método de grabación. |
RECORDING_METHOD_MANUAL_ENTRY |
El usuario ingresó los datos. |
RECORDING_METHOD_AUTOMATICALLY_RECORDED |
Un dispositivo o sensor registró los datos. |
RECORDING_METHOD_ACTIVELY_RECORDED |
El usuario inició o finalizó la sesión de grabación en un dispositivo. |
Por ejemplo:
StepsRecord(
startTime \= Instant.ofEpochMilli(1234L),
startZoneOffset \= null,
endTime \= Instant.ofEpochMilli(1236L),
endZoneOffset \= null,
metadata \= Metadata.manualEntry(),
Count \= 10,
)
Debes especificar un tipo de dispositivo para todos los datos que se registran de forma automática y activa. Entre los tipos de dispositivos actuales, se incluyen los siguientes:
Tipo de dispositivo | Descripción |
---|---|
TYPE_UNKNOWN |
Se desconoce el tipo de dispositivo. |
TYPE_WATCH |
El tipo de dispositivo es un reloj. |
TYPE_PHONE |
El tipo de dispositivo es un teléfono. |
TYPE_SCALE |
El tipo de dispositivo es una báscula. |
TYPE_RING |
El tipo de dispositivo es un anillo. |
TYPE_HEAD_MOUNTED |
El tipo de dispositivo es un dispositivo para la cabeza. |
TYPE_FITNESS_BAND |
El tipo de dispositivo es una banda de fitness. |
TYPE_CHEST_STRAP |
El tipo de dispositivo es una correa para el pecho. |
TYPE_SMART_DISPLAY |
El tipo de dispositivo es una pantalla inteligente. |
Cuando sea posible, proporciona el fabricante y el modelo del dispositivo, además del tipo de dispositivo. Por ejemplo:
private val TEST_DEVICE = Device(
manufacturer = "Google",
model = "Pixel Watch",
type = Device.TYPE_WATCH
)
Se actualizaron los fragmentos
Se actualizaron las guías de Health Connect en todos los casos en que se necesitaban fragmentos nuevos para cumplir con los nuevos requisitos de metadatos. Para ver algunos ejemplos, consulta la página Escribe datos.
Nuevos métodos de metadatos
Ya no se pueden crear instancias de metadatos directamente, por lo que debes usar uno de los métodos de fábrica para obtener una instancia nueva de metadatos. Cada función tiene tres variantes de firma:
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
Para obtener más información, consulta el Proyecto de código abierto de Android.
Datos de prueba
Usa la biblioteca de pruebas para simular los valores de metadatos esperados:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
Esto simula el comportamiento de la implementación de Health Connect, que propaga automáticamente estos valores durante la inserción de registros.
Para la biblioteca de pruebas, debes agregar esta dependencia del SDK de Health Connect a tu archivo build.gradle
a nivel del módulo:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
Actualiza la biblioteca
Los principales pasos que debes seguir son los siguientes:
Actualiza tu biblioteca a la versión 1.1.0-alpha12.
Cuando compiles la biblioteca, se generarán errores de compilación en los casos en que se necesiten metadatos nuevos, por lo que debes asegurarte de implementar los cambios de metadatos necesarios cada vez que se cree una instancia de un objeto de tipo
Record()
. Con esto, debería completarse la migración.