# HealthPermissionsRequestContract

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/contracts/HealthPermissionsRequestContract.kt+class:androidx.health.connect.client.contracts.HealthPermissionsRequestContract) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

*** ** * ** ***


```
public final class HealthPermissionsRequestContract extends ActivityResultContract<@NonNull Set<@NonNull String>, @NonNull Set<@NonNull String>>
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.activity.result.contract.ActivityResultContract](https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract)\<@[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) [Set](https://developer.android.com/reference/java/util/Set.html)\<@[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) [String](https://developer.android.com/reference/java/lang/String.html)\>, @[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) [Set](https://developer.android.com/reference/java/util/Set.html)\<@[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) [String](https://developer.android.com/reference/java/lang/String.html)\>\> ||
|   | ↳ | [androidx.health.connect.client.contracts.HealthPermissionsRequestContract](https://developer.android.com/reference/androidx/health/connect/client/contracts/HealthPermissionsRequestContract) |

*** ** * ** ***

An `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract` to request Health permissions.

It receives a set of permissions as input and returns a set with the granted permissions as output.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/health/connect/client/contracts/HealthPermissionsRequestContract#HealthPermissionsRequestContract(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html providerPackageName)` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Intent.html` | `https://developer.android.com/reference/androidx/health/connect/client/contracts/HealthPermissionsRequestContract#createIntent(android.content.Context,kotlin.collections.Set)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html> input)` Creates an intent to request HealthConnect permissions. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/health/connect/client/contracts/HealthPermissionsRequestContract#parseResult(kotlin.Int,android.content.Intent)(int resultCode, https://developer.android.com/reference/android/content/Intent.html intent)` Converts the activity result into a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html` of granted permissions. |

### Inherited methods

From [androidx.activity.result.contract.ActivityResultContract](https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract) `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract.SynchronousResult<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html>>` `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract#getSynchronousResult(android.content.Context,kotlin.Any)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context,
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html> input
)`

An optional method you can implement that can be used to potentially provide a result in lieu of starting an activity.

## Public constructors

### HealthPermissionsRequestContract

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public HealthPermissionsRequestContract(@NonNull String providerPackageName)
```

## Public methods

### createIntent

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public @NonNull Intent createIntent(@NonNull Context context, @NonNull Set<@NonNull String> input)
```

Creates an intent to request HealthConnect permissions. It receives as `https://developer.android.com/reference/androidx/health/connect/client/contracts/HealthPermissionsRequestContract#createIntent(android.content.Context,kotlin.collections.Set)` a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html` of HealthConnect permissions.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | the context |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html> input` | the health permission strings to request permissions for |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract#createIntent(android.content.Context,kotlin.Any)` |   |

### parseResult

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

```
public @NonNull Set<@NonNull String> parseResult(int resultCode, Intent intent)
```

Converts the activity result into a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html` of granted permissions. This will be a subset of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html` passed in `https://developer.android.com/reference/androidx/health/connect/client/contracts/HealthPermissionsRequestContract#createIntent(android.content.Context,kotlin.collections.Set)`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContract#parseResult(kotlin.Int,android.content.Intent)` |   |