# androidx.health.connect.client

*** ** * ** ***

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient` | Interface to access health and fitness records. |
| `https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectFeatures` | Interface for checking availability of features in `https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient`. |
| `https://developer.android.com/reference/kotlin/androidx/health/connect/client/PermissionController` | Interface for operations related to permissions. |

## Extension functions summary

|---|---|
| `suspend inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<T : https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record> https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient.https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).deleteRecords(androidx.health.connect.client.time.TimeRangeFilter)( timeRangeFilter: https://developer.android.com/reference/kotlin/androidx/health/connect/client/time/TimeRangeFilter )` Deletes any `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` of type `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).deleteRecords(androidx.health.connect.client.time.TimeRangeFilter)` in the given `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).deleteRecords(androidx.health.connect.client.time.TimeRangeFilter)` (automatically filtered to `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` belonging to the calling application). |
| `suspend inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<T : https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record> https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient.https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).deleteRecords(kotlin.collections.List,kotlin.collections.List)( recordIdsList: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>, clientRecordIdsList: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html> )` Deletes one or more `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` by their identifiers. |
| `suspend inline https://developer.android.com/reference/kotlin/androidx/health/connect/client/response/ReadRecordResponse<T>` | `<T : https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record> https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient.https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).readRecord(kotlin.String)(recordId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Reads one `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` point of type `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).readRecord(kotlin.String)` and with the specified `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).readRecord(kotlin.String)`. |

## Extension functions

### HealthConnectClient.deleteRecords

Artifact: [androidx.health.connect:connect-client](https://developer.android.com/jetpack/androidx/releases/health-connect) [View Source](https://cs.android.com/search?q=file:androidx/health/connect/client/HealthConnectClientExt.kt+function:deleteRecords)

```
suspend inline fun <T : Record> HealthConnectClient.deleteRecords(
    timeRangeFilter: TimeRangeFilter
): Unit
```

Deletes any `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` of type `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).deleteRecords(androidx.health.connect.client.time.TimeRangeFilter)` in the given `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).deleteRecords(androidx.health.connect.client.time.TimeRangeFilter)` (automatically filtered to `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` belonging to the calling application). Deletion of multiple `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` is executed in a transaction - if one fails, none is deleted.

```kotlin
import androidx.health.connect.client.deleteRecords
import androidx.health.connect.client.records.StepsRecord
import androidx.health.connect.client.time.TimeRangeFilter

healthConnectClient.deleteRecords<StepsRecord>(
    timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
)
```

| Parameters |
|---|---|
| `<T : https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record>` | Which type of `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` to delete, such as `StepsRecord`. |
| `timeRangeFilter: https://developer.android.com/reference/kotlin/androidx/health/connect/client/time/TimeRangeFilter` | The `https://developer.android.com/reference/kotlin/androidx/health/connect/client/time/TimeRangeFilter` to delete from |

| Throws |
|---|---|
| `https://developer.android.com/reference/android/os/RemoteException.html` | For any IPC transportation failures. |
| `https://developer.android.com/reference/java/lang/SecurityException.html` | For requests with unpermitted access. |
| `https://developer.android.com/reference/java/io/IOException.html` | For any disk I/O issues. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | If service is not available. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient#deleteRecords(kotlin.reflect.KClass,kotlin.collections.List,kotlin.collections.List)` | Example usage to delete written steps data in a time range: |

### HealthConnectClient.deleteRecords

Artifact: [androidx.health.connect:connect-client](https://developer.android.com/jetpack/androidx/releases/health-connect) [View Source](https://cs.android.com/search?q=file:androidx/health/connect/client/HealthConnectClientExt.kt+function:deleteRecords)

```
suspend inline fun <T : Record> HealthConnectClient.deleteRecords(
    recordIdsList: List<String>,
    clientRecordIdsList: List<String>
): Unit
```

Deletes one or more `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` by their identifiers. Deletion of multiple `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` is executed in single transaction - if one fails, none is deleted.

```kotlin
import androidx.health.connect.client.deleteRecords
import androidx.health.connect.client.records.StepsRecord

healthConnectClient.deleteRecords<StepsRecord>(
    recordIdsList = listOf(uid1, uid2),
    clientRecordIdsList = emptyList(),
)
```

| Parameters |
|---|---|
| `<T : https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record>` | Which type of `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` to delete, such as `StepsRecord`. |
| `recordIdsList: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>` | List of `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/metadata/Metadata#id()` of `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` to delete |
| `clientRecordIdsList: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>` | List of client record IDs of `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` to delete |

| Throws |
|---|---|
| `https://developer.android.com/reference/android/os/RemoteException.html` | For any IPC transportation failures. Deleting by invalid identifiers such as a non-existing identifier or deleting the same record multiple times will result in IPC failure. |
| `https://developer.android.com/reference/java/lang/SecurityException.html` | For requests with unpermitted access. |
| `https://developer.android.com/reference/java/io/IOException.html` | For any disk I/O issues. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | If service is not available. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient#deleteRecords(kotlin.reflect.KClass,kotlin.collections.List,kotlin.collections.List)` | Example usage to delete written steps data by its unique identifier: |

### HealthConnectClient.readRecord

Artifact: [androidx.health.connect:connect-client](https://developer.android.com/jetpack/androidx/releases/health-connect) [View Source](https://cs.android.com/search?q=file:androidx/health/connect/client/HealthConnectClientExt.kt+function:readRecord)

```
suspend inline fun <T : Record> HealthConnectClient.readRecord(recordId: String): ReadRecordResponse<T>
```

Reads one `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` point of type `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).readRecord(kotlin.String)` and with the specified `https://developer.android.com/reference/kotlin/androidx/health/connect/client/package-summary#(androidx.health.connect.client.HealthConnectClient).readRecord(kotlin.String)`.

| Parameters |
|---|---|
| `<T : https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record>` | Which type of `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` to read, such as `StepsRecord`. |
| `recordId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/metadata/Metadata#id()` of `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` to read |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/health/connect/client/response/ReadRecordResponse<T>` | The `https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/Record` data point. |

| Throws |
|---|---|
| `https://developer.android.com/reference/android/os/RemoteException.html` | For any IPC transportation failures. Update with invalid identifiers will result in IPC failure. |
| `https://developer.android.com/reference/java/lang/SecurityException.html` | For requests with unpermitted access. |
| `https://developer.android.com/reference/java/io/IOException.html` | For any disk I/O issues. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | If service is not available. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/health/connect/client/HealthConnectClient#readRecord(kotlin.reflect.KClass,kotlin.String)` |   |