Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/app/RemoteInput.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/app/RemoteInput.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/RemoteInput.Builder#inhmethods)

# RemoteInput.Builder

*** ** * ** ***

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


`
public
static
final

class
RemoteInput.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.app.RemoteInput.Builder |

<br />

*** ** * ** ***

Builder class for `https://developer.android.com/reference/android/app/RemoteInput` objects.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/RemoteInput.Builder#Builder(java.lang.String)(https://developer.android.com/reference/java/lang/String resultKey) ` Create a builder object for `https://developer.android.com/reference/android/app/RemoteInput` objects. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/app/RemoteInput.Builder` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#addExtras(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle extras) ` Merge additional metadata into this builder. |
| ` https://developer.android.com/reference/android/app/RemoteInput` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#build()() ` Combine all of the options that have been set and return a new `https://developer.android.com/reference/android/app/RemoteInput` object. |
| ` https://developer.android.com/reference/android/os/Bundle` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#getExtras()() ` Get the metadata Bundle used by this Builder. |
| ` https://developer.android.com/reference/android/app/RemoteInput.Builder` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#setAllowDataType(java.lang.String,%20boolean)(https://developer.android.com/reference/java/lang/String mimeType, boolean doAllow) ` Specifies whether the user can provide arbitrary values. |
| ` https://developer.android.com/reference/android/app/RemoteInput.Builder` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#setAllowFreeFormInput(boolean)(boolean allowFreeFormTextInput) ` Specifies whether the user can provide arbitrary text values. |
| ` https://developer.android.com/reference/android/app/RemoteInput.Builder` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#setChoices(java.lang.CharSequence[])(https://developer.android.com/reference/java/lang/CharSequence choices) ` Specifies choices available to the user to satisfy this input. |
| ` https://developer.android.com/reference/android/app/RemoteInput.Builder` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#setEditChoicesBeforeSending(int)(int editChoicesBeforeSending) ` Specifies whether tapping on a choice should let the user edit the input before it is sent to the app. |
| ` https://developer.android.com/reference/android/app/RemoteInput.Builder` | ` https://developer.android.com/reference/android/app/RemoteInput.Builder#setLabel(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence label) ` Set a label to be displayed to the user when collecting this input. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### Builder

Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder (String resultKey)
```

Create a builder object for `https://developer.android.com/reference/android/app/RemoteInput` objects.

<br />

| Parameters ||
|---|---|
| `resultKey` | `String`: the Bundle key that refers to this input when collected from the user. This value cannot be `null`. <br /> |

## Public methods

### addExtras

Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RemoteInput.Builder addExtras (Bundle extras)
```

Merge additional metadata into this builder.

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

<br />

| Parameters ||
|---|---|
| `extras` | `Bundle`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/RemoteInput.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/RemoteInput#getExtras()`

### build

Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RemoteInput build ()
```

Combine all of the options that have been set and return a new `https://developer.android.com/reference/android/app/RemoteInput`
object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/RemoteInput` | This value cannot be `null`. <br /> |

### getExtras

Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Bundle getExtras ()
```

Get the metadata Bundle used by this Builder.

The returned Bundle is shared with this Builder.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/Bundle` | This value cannot be `null`. <br /> |

### setAllowDataType

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RemoteInput.Builder setAllowDataType (String mimeType, 
                boolean doAllow)
```

Specifies whether the user can provide arbitrary values. This allows an input
to accept non-textual values. Examples of usage are an input that wants audio
or an image.

<br />

| Parameters ||
|---|---|
| `mimeType` | `String`: A mime type that results are allowed to come in. Be aware that text results (see `https://developer.android.com/reference/android/app/RemoteInput.Builder#setAllowFreeFormInput(boolean)` are allowed by default. If you do not want text results you will have to pass false to `setAllowFreeFormInput` This value cannot be `null`. <br /> |
| `doAllow` | `boolean`: Whether the mime type should be allowed or not <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/RemoteInput.Builder` | this object for method chaining. This value cannot be `null`. <br /> |

### setAllowFreeFormInput

Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RemoteInput.Builder setAllowFreeFormInput (boolean allowFreeFormTextInput)
```

Specifies whether the user can provide arbitrary text values.

<br />

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

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/RemoteInput.Builder` | this object for method chaining. This value cannot be `null`. <br /> |

### setChoices

Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RemoteInput.Builder setChoices (CharSequence[] choices)
```

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.

<br />

| Parameters ||
|---|---|
| `choices` | `CharSequence`: 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 `https://developer.android.com/reference/android/app/RemoteInput.Builder#setAllowFreeFormInput(boolean)` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/RemoteInput.Builder` | this object for method chaining. This value cannot be `null`. <br /> |

### setEditChoicesBeforeSending

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RemoteInput.Builder setEditChoicesBeforeSending (int editChoicesBeforeSending)
```

Specifies whether tapping on a choice should let the user edit the input before it is
sent to the app. The default is `https://developer.android.com/reference/android/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_AUTO`.

It cannot be used if `https://developer.android.com/reference/android/app/RemoteInput.Builder#setAllowFreeFormInput(boolean)` has been set to false.

<br />

| Parameters ||
|---|---|
| `editChoicesBeforeSending` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_AUTO` - `https://developer.android.com/reference/android/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_DISABLED` - `https://developer.android.com/reference/android/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_ENABLED` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/RemoteInput.Builder` | This value cannot be `null`. <br /> |

### setLabel

Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RemoteInput.Builder setLabel (CharSequence label)
```

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

<br />

| Parameters ||
|---|---|
| `label` | `CharSequence`: The label to show to users when they input a response. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/RemoteInput.Builder` | this object for method chaining. This value cannot be `null`. <br /> |