# RemoteInput.Builder

# RemoteInput.Builder

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core)  
[View Source](https://cs.android.com/search?q=file:androidx/core/app/RemoteInput.java+class:androidx.core.app.RemoteInput.Builder)  
Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/core#1.1.0)

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/androidx/core/app/RemoteInput.Builder "View this page in Java")


```
class RemoteInput.Builder
```

<br />

*** ** * ** ***

Builder class for [androidx.core.app.RemoteInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput) objects.

## Summary

|                                                                                                                                                                            ### Public constructors                                                                                                                                                                             |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#Builder(java.lang.String))`(resultKey: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`)` Create a builder object for [androidx.core.app.RemoteInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput) objects. |

|                                            ### Public functions                                             |
|-------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | [addExtras](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#addExtras(android.os.Bundle))`(extras: `[Bundle](https://developer.android.com/reference/android/os/Bundle.html)`)` Merge additional metadata into this builder.                                                                                                                                             |
| [RemoteInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput)                 | [build](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#build())`()` Combine all of the options that have been set and return a new [androidx.core.app.RemoteInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput) object.                                                                                                                |
| [Bundle](https://developer.android.com/reference/android/os/Bundle.html)                                    | [getExtras](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#getExtras())`()` Get the metadata Bundle used by this Builder.                                                                                                                                                                                                                                               |
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | [setAllowDataType](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setAllowDataType(java.lang.String,boolean))`(mimeType: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`, doAllow: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Specifies whether the user can provide arbitrary values. |
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | [setAllowFreeFormInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setAllowFreeFormInput(boolean))`(allowFreeFormTextInput: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Specifies whether the user can provide arbitrary text values.                                                                                   |
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | [setChoices](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setChoices(java.lang.CharSequence[]))`(choices: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!>?)` Specifies choices available to the user to satisfy this input.      |
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | [setEditChoicesBeforeSending](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setEditChoicesBeforeSending(int))`(editChoicesBeforeSending: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Specifies whether tapping on a choice should let the user edit the input before it is sent to the app.                                        |
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | [setLabel](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setLabel(java.lang.CharSequence))`(label: `[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`?)` Set a label to be displayed to the user when collecting this input.                                                                                             |

## Public constructors

### Builder

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

```
Builder(resultKey: String)
```

Create a builder object for [androidx.core.app.RemoteInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput) objects.  

|                                           Parameters                                           |
|------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| `resultKey: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html) | the Bundle key that refers to this input when collected from the user |

## Public functions

### addExtras

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

```
fun addExtras(extras: Bundle): RemoteInput.Builder
```

Merge additional metadata into this builder.

Values within the Bundle will replace existing extras values in this Builder.  

|                                               See also                                                |
|-------------------------------------------------------------------------------------------------------|---|
| [getExtras](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput#getExtras()) |   |

### build

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

```
fun build(): RemoteInput
```

Combine all of the options that have been set and return a new [androidx.core.app.RemoteInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput) object.  

### getExtras

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

```
fun getExtras(): Bundle
```

Get the metadata Bundle used by this Builder.

The returned Bundle is shared with this Builder.  

### setAllowDataType

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

```
fun setAllowDataType(mimeType: String, doAllow: Boolean): RemoteInput.Builder
```

Specifies whether the user can provide arbitrary values.  

|                                           Parameters                                           |
|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `mimeType: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)  | A mime type that results are allowed to come in. Be aware that text results (see [setAllowFreeFormInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setAllowFreeFormInput(boolean)) are allowed by default. If you do not want text results you will have to pass false to `setAllowFreeFormInput` |
| `doAllow: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether the mime type should be allowed or not                                                                                                                                                                                                                                                                                               |

|                                                   Returns                                                   |
|-------------------------------------------------------------------------------------------------------------|---------------------------------|
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | this object for method chaining |

### setAllowFreeFormInput

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

```
fun setAllowFreeFormInput(allowFreeFormTextInput: Boolean): RemoteInput.Builder
```

Specifies whether the user can provide arbitrary text values.  

|                                                  Parameters                                                   |
|---------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `allowFreeFormTextInput: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | The default is `true`. If you specify `false`, you must either provide a non-null and non-empty array to [setChoices](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setChoices(java.lang.CharSequence[])), or enable a data result in `setAllowDataType`. Otherwise an [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException.html) is thrown |

|                                                   Returns                                                   |
|-------------------------------------------------------------------------------------------------------------|---------------------------------|
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | this object for method chaining |

### setChoices

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

```
fun setChoices(choices: Array<CharSequence!>?): RemoteInput.Builder
```

Specifies choices available to the user to satisfy this input.

Note: Starting in Android P, these choices will always be shown on phones if the app's target SDK is \>= P. However, these choices may also be rendered on other types of devices regardless of target SDK.  

|                                                                                            Parameters                                                                                            |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `choices: `[Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!>?` | an array of pre-defined choices for users input. You must provide a non-null and non-empty array if you disabled free form input using [setAllowFreeFormInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setAllowFreeFormInput(boolean)) |

|                                                   Returns                                                   |
|-------------------------------------------------------------------------------------------------------------|---------------------------------|
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | this object for method chaining |

### setEditChoicesBeforeSending

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/core#1.2.0)  

```
fun setEditChoicesBeforeSending(editChoicesBeforeSending: Int): RemoteInput.Builder
```

Specifies whether tapping on a choice should let the user edit the input before it is sent to the app. The default is [EDIT_CHOICES_BEFORE_SENDING_AUTO](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_AUTO()). It cannot be used if [setAllowFreeFormInput](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder#setAllowFreeFormInput(boolean)) has been set to false.  

### setLabel

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

```
fun setLabel(label: CharSequence?): RemoteInput.Builder
```

Set a label to be displayed to the user when collecting this input.  

|                                                 Parameters                                                 |
|------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|
| `label: `[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`?` | The label to show to users when they input a response |

|                                                   Returns                                                   |
|-------------------------------------------------------------------------------------------------------------|---------------------------------|
| [RemoteInput.Builder](https://developer.android.com/reference/kotlin/androidx/core/app/RemoteInput.Builder) | this object for method chaining |