Primeros pasos

Consulta los siguientes recursos antes de comenzar la instalación de Health Connect.

Recursos

  • SDK del cliente (disponible en Jetpack): Incluye este SDK en tu aplicación para usar la API de Health Connect.
  • APK de Health Connect (disponible en Play Store): Instala el APK de Play Store. Controlará todas las solicitudes que envíe tu aplicación con el SDK de Health Connect.
  • Referencia de la API: Consulta la referencia de Jetpack para la API de Health Connect.
  • Muestras de código de GitHub (opcional): Para comenzar, consulta el repositorio de muestras de código de GitHub.

Sigue estos pasos simples y rápidos para integrar Health Connect:

Paso 1:

Primero, asegúrate de hacer lo siguiente:

Agrega una dependencia en el SDK de Health Connect, en el archivo build.gradle de tu módulo:

dependencies {
   …
  implementation 'androidx.health:health-connect-client:1.0.0-alpha03'
}

Encuentra las versiones más recientes aquí.

Instala el APK de Health Connect en tu dispositivo:

Primero, habilita el programa de prueba beta abierta de Health Connect aquí. En el vínculo de la versión beta abierta, también se muestra cómo descargar la app de Health Connect. Una vez que la habilites, instala el APK de Health Connect en tu dispositivo.

Paso 2:

Declara la siguiente Actividad en tu archivo AndroidManifest.xml para procesar el intent que explicará el uso de permisos de tu app.

<application …>
    <activity name=".PermissionsRationaleActivity" exported="true">
        <intent-filter>
            <action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE"/>
        </intent-filter>
        <meta-data android:name="health_permissions"
                android:resource="@array/health_permissions" />
    </activity>

La app necesita controlar este intent y mostrar una política de privacidad en la que se explique el uso y manejo de los datos del usuario. Este intent se envía a la app cuando el usuario hace clic en el vínculo de la "política de privacidad", en el diálogo de permisos de Health Connect.

Paso 3: Conexión a la API de Health Connect

HealthConnectClient es un punto de entrada a la API de Health Connect.

A continuación, se incluye una descripción paso a paso del proceso para conectarse con Health Connect:

  1. Actualiza AndroidManifest.xml.

    // Add this to AndroidManifest.xml
    <!-- To check whether healthcore apk is installed or not -->
    <queries>
        <package android:name="com.google.android.apps.healthdata" />
    </queries>
    
  2. En MainActivity, verifica si Health Connect está instalado. De ser así, obtén una instancia de HealthConnectClient.

    if (HealthConnectClient.isAvailable(context)) {
      // Health Connect is available and installed.
      val healthConnectClient = HealthConnectClient.getOrCreate(context)
    } else {
      // ...
    }
     ```
    
  3. La app cliente debe solicitar el permiso al usuario. El usuario puede otorgar o denegar el acceso a la app cliente en cualquier momento.

HealthConnectClient administra automáticamente su conexión con la capa de almacenamiento subyacente y controla la IPC y la serialización completas de las solicitudes salientes y las respuestas entrantes.

Paso 4: Permisos

Declara los permisos que usará tu app. Crea un recurso de array en res/values/health_permissions.xml. Ten en cuenta que deberás agregar una línea para cada permiso que use tu app:

<resources>
  <array name="health_permissions">
    <item>androidx.health.permission.HeartRate.READ</item>
    <item>androidx.health.permission.HeartRate.WRITE</item>
    <item>androidx.health.permission.Steps.READ</item>
    <item>androidx.health.permission.Steps.WRITE</item>
  </array>
</resources>

A fin de iniciar el diálogo de solicitud de permisos dentro de tu aplicación, primero, compila un conjunto de permisos para los tipos de datos obligatorios. Asegúrate de que los permisos del conjunto también se declaren en res/values/health_permissions.xml.

// build a set of permissions for required data types
val PERMISSIONS =
 setOf(
   Permission.createReadPermission(HeartRateRecord::class),
   Permission.createWritePermission(HeartRateRecord::class),
   Permission.createReadPermission(StepsRecord::class),
   Permission.createWritePermission(StepsRecord::class)
 )

Luego, solicita los permisos. Verifica si ya se otorgaron permisos antes de iniciar la solicitud de permisos.

// Create the permissions launcher.
val requestPermissionActivityContract = healthConnectClient.permissionController.createRequestPermissionActivityContract()

val requestPermissions =
 registerForActivityResult(requestPermissionActivityContract) { granted ->
   if (granted.containsAll(PERMISSIONS)) {
     // Permissions successfully granted
   } else {
     // Lack of required permissions
   }
 }

fun checkPermissionsAndRun(client: HealthConnectClient) {
 lifecycleScope.launch {
   val granted = client.permissionController.getGrantedPermissions(PERMISSIONS)
   if (granted.containsAll(PERMISSIONS)) {
     // Permissions already granted
   } else {
     requestPermissions.launch(PERMISSIONS)
   }
 }
}

En este punto, puedes comenzar a realizar operaciones de CRUD.