Added in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/app/RemoteInput#nestedclasses) \| [Constants](https://developer.android.com/reference/android/app/RemoteInput#constants) \| [Inherited Constants](https://developer.android.com/reference/android/app/RemoteInput#inhconstants) \| [Fields](https://developer.android.com/reference/android/app/RemoteInput#lfields) \| [Methods](https://developer.android.com/reference/android/app/RemoteInput#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/RemoteInput#inhmethods)

# RemoteInput

*** ** * ** ***


`
public

final

class
RemoteInput
`


`

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


`

`


implements

https://developer.android.com/reference/android/os/Parcelable


`

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

<br />

*** ** * ** ***

A `RemoteInput` object specifies input to be collected from a user to be passed along with
an intent inside a `https://developer.android.com/reference/android/app/PendingIntent` that is sent.
Always use `https://developer.android.com/reference/android/app/RemoteInput.Builder` to create instances of this class.

See
[Replying
to notifications](https://developer.android.com/guide/topics/ui/notifiers/notifications#direct) for more information on how to use this class.

The following example adds a `RemoteInput` to a `https://developer.android.com/reference/android/app/Notification.Action`,
sets the result key as `quick_reply`, and sets the label as `Quick reply`.
Users are prompted to input a response when they trigger the action. The results are sent along
with the intent and can be retrieved with the result key (provided to the `https://developer.android.com/reference/android/app/RemoteInput.Builder`
constructor) from the Bundle returned by `https://developer.android.com/reference/android/app/RemoteInput#getResultsFromIntent(android.content.Intent)`.

```
public static final String KEY_QUICK_REPLY_TEXT = "quick_reply";
Notification.Action action = new Notification.Action.Builder(
        R.drawable.reply, "Reply", actionIntent)
        .addRemoteInput(new RemoteInput.Builder(KEY_QUICK_REPLY_TEXT)
                .setLabel("Quick reply").build())
        .build();
```

When the `https://developer.android.com/reference/android/app/PendingIntent` is fired, the intent inside will contain the
input results if collected. To access these results, use the `https://developer.android.com/reference/android/app/RemoteInput#getResultsFromIntent(android.content.Intent)`
function. The result values will present under the result key passed to the `https://developer.android.com/reference/android/app/RemoteInput.Builder`
constructor.

```
public static final String KEY_QUICK_REPLY_TEXT = "quick_reply";
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
    CharSequence quickReplyResult = results.getCharSequence(KEY_QUICK_REPLY_TEXT);
}
```

<br />

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/app/RemoteInput.Builder` Builder class for `https://developer.android.com/reference/android/app/RemoteInput` objects. |

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_AUTO` The platform will determine whether choices will be edited before being sent to the app. |
| `int` | `https://developer.android.com/reference/android/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_DISABLED` Tapping on a choice should send the input immediately, without letting the user edit it. |
| `int` | `https://developer.android.com/reference/android/app/RemoteInput#EDIT_CHOICES_BEFORE_SENDING_ENABLED` Tapping on a choice should let the user edit the input before it is sent to the app. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/RemoteInput#EXTRA_RESULTS_DATA` Extra added to a clip data intent object to hold the text results bundle. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/app/RemoteInput#RESULTS_CLIP_LABEL` Label used to denote the clip data type used for remote input transport |
| `int` | `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_CHOICE` The user selected one of the choices from `https://developer.android.com/reference/android/app/RemoteInput#getChoices()`. |
| `int` | `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_FREE_FORM_INPUT` The user manually entered the data. |

### Inherited constants

From interface `https://developer.android.com/reference/android/os/Parcelable` `int` `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR`

Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that
the Parcelable object's flattened representation includes a file descriptor.


`int` `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`

Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written
is a return value, that is the result of a function such as
"`Parcelable someFunction()`",
"`void someFunction(out Parcelable)`", or
"`void someFunction(inout Parcelable)`".


| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/app/RemoteInput>` | `https://developer.android.com/reference/android/app/RemoteInput#CREATOR` |

| ### Public methods ||
|---|---|
| ` static void` | ` https://developer.android.com/reference/android/app/RemoteInput#addDataResultToIntent(android.app.RemoteInput,%20android.content.Intent,%20java.util.Map<java.lang.String,android.net.Uri>)(https://developer.android.com/reference/android/app/RemoteInput remoteInput, https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/android/net/Uri> results) ` Same as `https://developer.android.com/reference/android/app/RemoteInput#addResultsToIntent(android.app.RemoteInput[],%20android.content.Intent,%20android.os.Bundle)` but for setting data results. |
| ` static void` | ` https://developer.android.com/reference/android/app/RemoteInput#addResultsToIntent(android.app.RemoteInput[],%20android.content.Intent,%20android.os.Bundle)(https://developer.android.com/reference/android/app/RemoteInput remoteInputs, https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/android/os/Bundle results) ` Populate an intent object with the text results gathered from remote input. |
| ` int` | ` https://developer.android.com/reference/android/app/RemoteInput#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| ` boolean` | ` https://developer.android.com/reference/android/app/RemoteInput#getAllowFreeFormInput()() ` Get whether or not users can provide an arbitrary value for input. |
| ` https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/java/lang/String>` | ` https://developer.android.com/reference/android/app/RemoteInput#getAllowedDataTypes()() ` Get possible non-textual inputs that are accepted. |
| ` https://developer.android.com/reference/java/lang/CharSequence` | ` https://developer.android.com/reference/android/app/RemoteInput#getChoices()() ` Get possible input choices. |
| ` static https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/android/net/Uri>` | ` https://developer.android.com/reference/android/app/RemoteInput#getDataResultsFromIntent(android.content.Intent,%20java.lang.String)(https://developer.android.com/reference/android/content/Intent intent, https://developer.android.com/reference/java/lang/String remoteInputResultKey) ` Similar as `https://developer.android.com/reference/android/app/RemoteInput#getResultsFromIntent(android.content.Intent)` but retrieves data results for a specific RemoteInput result. |
| ` int` | ` https://developer.android.com/reference/android/app/RemoteInput#getEditChoicesBeforeSending()() ` Gets 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/os/Bundle` | ` https://developer.android.com/reference/android/app/RemoteInput#getExtras()() ` Get additional metadata carried around with this remote input. |
| ` https://developer.android.com/reference/java/lang/CharSequence` | ` https://developer.android.com/reference/android/app/RemoteInput#getLabel()() ` Get the label to display to users when collecting this input. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/app/RemoteInput#getResultKey()() ` Get the key that the result of this input will be set in from the Bundle returned by `https://developer.android.com/reference/android/app/RemoteInput#getResultsFromIntent(android.content.Intent)` when the `https://developer.android.com/reference/android/app/PendingIntent` is sent. |
| ` static https://developer.android.com/reference/android/os/Bundle` | ` https://developer.android.com/reference/android/app/RemoteInput#getResultsFromIntent(android.content.Intent)(https://developer.android.com/reference/android/content/Intent intent) ` Get the remote input text results bundle from an intent. |
| ` static int` | ` https://developer.android.com/reference/android/app/RemoteInput#getResultsSource(android.content.Intent)(https://developer.android.com/reference/android/content/Intent intent) ` Get the source of the RemoteInput results. |
| ` boolean` | ` https://developer.android.com/reference/android/app/RemoteInput#isDataOnly()() ` Returns true if the input only accepts data, meaning `https://developer.android.com/reference/android/app/RemoteInput#getAllowFreeFormInput()` is false, `https://developer.android.com/reference/android/app/RemoteInput#getChoices()` is null or empty, and `https://developer.android.com/reference/android/app/RemoteInput#getAllowedDataTypes()` is non-null and not empty. |
| ` static void` | ` https://developer.android.com/reference/android/app/RemoteInput#setResultsSource(android.content.Intent,%20int)(https://developer.android.com/reference/android/content/Intent intent, int source) ` Set the source of the RemoteInput results. |
| ` void` | ` https://developer.android.com/reference/android/app/RemoteInput#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel out, int flags) ` Flatten this object in to a Parcel. |

### 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*.


From interface `

https://developer.android.com/reference/android/os/Parcelable

` `
abstract


int` `
https://developer.android.com/reference/android/os/Parcelable#describeContents()()
`

Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation.


`
abstract


void` `
https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags)
`

Flatten this object in to a Parcel.


## Constants

### EDIT_CHOICES_BEFORE_SENDING_AUTO

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

```
public static final int EDIT_CHOICES_BEFORE_SENDING_AUTO
```

The platform will determine whether choices will be edited before being sent to the app.

<br />

Constant Value:

0
(0x00000000)


### EDIT_CHOICES_BEFORE_SENDING_DISABLED

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

```
public static final int EDIT_CHOICES_BEFORE_SENDING_DISABLED
```

Tapping on a choice should send the input immediately, without letting the user edit it.

<br />

Constant Value:

1
(0x00000001)


### EDIT_CHOICES_BEFORE_SENDING_ENABLED

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

```
public static final int EDIT_CHOICES_BEFORE_SENDING_ENABLED
```

Tapping on a choice should let the user edit the input before it is sent to the app.

<br />

Constant Value:

2
(0x00000002)


### EXTRA_RESULTS_DATA

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

```
public static final String EXTRA_RESULTS_DATA
```

Extra added to a clip data intent object to hold the text results bundle.

<br />

Constant Value:

"android.remoteinput.resultsData"


### RESULTS_CLIP_LABEL

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

```
public static final String RESULTS_CLIP_LABEL
```

Label used to denote the clip data type used for remote input transport

<br />

Constant Value:

"android.remoteinput.results"


### SOURCE_CHOICE

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

```
public static final int SOURCE_CHOICE
```

The user selected one of the choices from `https://developer.android.com/reference/android/app/RemoteInput#getChoices()`.

<br />

Constant Value:

1
(0x00000001)


### SOURCE_FREE_FORM_INPUT

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

```
public static final int SOURCE_FREE_FORM_INPUT
```

The user manually entered the data.

<br />

Constant Value:

0
(0x00000000)


## Fields

### CREATOR

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

```
public static final Creator<RemoteInput> CREATOR
```

<br />

<br />

## Public methods

### addDataResultToIntent

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

```
public static void addDataResultToIntent (RemoteInput remoteInput, 
                Intent intent, 
                Map<String, Uri> results)
```

Same as `https://developer.android.com/reference/android/app/RemoteInput#addResultsToIntent(android.app.RemoteInput[],%20android.content.Intent,%20android.os.Bundle)` but for setting data results. This is used
for inputs that accept non-textual results (see `https://developer.android.com/reference/android/app/RemoteInput.Builder#setAllowDataType(java.lang.String,%20boolean)`).
Only one result can be provided for every mime type accepted by the RemoteInput.
If multiple inputs of the same mime type are expected then multiple RemoteInputs
should be used.

<br />

| Parameters ||
|---|---|
| `remoteInput` | `RemoteInput`: The remote input for which results are being provided <br /> |
| `intent` | `Intent`: The intent to add remote input results to. The `https://developer.android.com/reference/android/content/ClipData` field of the intent will be modified to contain the results. <br /> |
| `results` | `Map`: A map of mime type to the Uri result for that mime type. <br /> |

### addResultsToIntent

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

```
public static void addResultsToIntent (RemoteInput[] remoteInputs, 
                Intent intent, 
                Bundle results)
```

Populate an intent object with the text results gathered from remote input. This method
should only be called by remote input collection services when sending results to a
pending intent.

<br />

| Parameters ||
|---|---|
| `remoteInputs` | `RemoteInput`: The remote inputs for which results are being provided <br /> |
| `intent` | `Intent`: The intent to add remote inputs to. The `https://developer.android.com/reference/android/content/ClipData` field of the intent will be modified to contain the results. <br /> |
| `results` | `Bundle`: A bundle holding the remote input results. This bundle should be populated with keys matching the result keys specified in `remoteInputs` with values being the CharSequence results per key. <br /> |

### describeContents

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

```
public int describeContents ()
```

Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`,
the return value of this method must include the
`https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` bit.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### getAllowFreeFormInput

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

```
public boolean getAllowFreeFormInput ()
```

Get whether or not users can provide an arbitrary value for
input. If you set this to `false`, users must select one of the
choices in `https://developer.android.com/reference/android/app/RemoteInput#getChoices()`. An `https://developer.android.com/reference/java/lang/IllegalArgumentException` is thrown
if you set this to false and `https://developer.android.com/reference/android/app/RemoteInput#getChoices()` returns `null` or empty.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### getAllowedDataTypes

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

```
public Set<String> getAllowedDataTypes ()
```

Get possible non-textual inputs that are accepted.
This can be `null` if the input does not accept non-textual values.
See `https://developer.android.com/reference/android/app/RemoteInput.Builder#setAllowDataType(java.lang.String,%20boolean)`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/java/lang/String>` | <br /> |

### getChoices

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

```
public CharSequence[] getChoices ()
```

Get possible input choices. This can be `null` if there are no choices to present.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/CharSequence` | <br /> |

### getDataResultsFromIntent

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

```
public static Map<String, Uri> getDataResultsFromIntent (Intent intent, 
                String remoteInputResultKey)
```

Similar as `https://developer.android.com/reference/android/app/RemoteInput#getResultsFromIntent(android.content.Intent)` but retrieves data results for a
specific RemoteInput result. To retrieve a value use:

    Map<String, Uri> results =
        RemoteInput.getDataResultsFromIntent(intent, REMOTE_INPUT_KEY);
    if (results != null) {
      Uri data = results.get(MIME_TYPE_OF_INTEREST);
    }

<br />

<br />

| Parameters ||
|---|---|
| `intent` | `Intent`: The intent object that fired in response to an action or content intent which also had one or more remote input requested. <br /> |
| `remoteInputResultKey` | `String`: The result key for the RemoteInput you want results for. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Map<https://developer.android.com/reference/java/lang/String, https://developer.android.com/reference/android/net/Uri>` | <br /> |

### getEditChoicesBeforeSending

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

```
public int getEditChoicesBeforeSending ()
```

Gets whether tapping on a choice should let the user edit the input before it is sent to the
app.

<br />

| Returns ||
|---|---|
| `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` |

### getExtras

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

```
public Bundle getExtras ()
```

Get additional metadata carried around with this remote input.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/Bundle` | <br /> |

### getLabel

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

```
public CharSequence getLabel ()
```

Get the label to display to users when collecting this input.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/CharSequence` | <br /> |

### getResultKey

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

```
public String getResultKey ()
```

Get the key that the result of this input will be set in from the Bundle returned by
`https://developer.android.com/reference/android/app/RemoteInput#getResultsFromIntent(android.content.Intent)` when the `https://developer.android.com/reference/android/app/PendingIntent` is sent.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | <br /> |

### getResultsFromIntent

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

```
public static Bundle getResultsFromIntent (Intent intent)
```

Get the remote input text results bundle from an intent. The returned Bundle will
contain a key/value for every result key populated with text by remote input collector.
Use the `https://developer.android.com/reference/android/os/Bundle#getCharSequence(java.lang.String)` method to retrieve a value. For non-text
results use `https://developer.android.com/reference/android/app/RemoteInput#getDataResultsFromIntent(android.content.Intent,%20java.lang.String)`.

<br />

| Parameters ||
|---|---|
| `intent` | `Intent`: The intent object that fired in response to an action or content intent which also had one or more remote input requested. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/Bundle` | <br /> |

### getResultsSource

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

```
public static int getResultsSource (Intent intent)
```

Get the source of the RemoteInput results.

<br />

| Parameters ||
|---|---|
| `intent` | `Intent`: The intent object that fired in response to an action or content intent which also had one or more remote input requested. <br /> |

| Returns ||
|---|---|
| `int` | The source of the results. If no source was set, `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_FREE_FORM_INPUT` will be returned. Value is one of the following: - `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_FREE_FORM_INPUT` - `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_CHOICE` |

**See also:**

- `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_FREE_FORM_INPUT`
- `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_CHOICE`

### isDataOnly

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

```
public boolean isDataOnly ()
```

Returns true if the input only accepts data, meaning `https://developer.android.com/reference/android/app/RemoteInput#getAllowFreeFormInput()`
is false, `https://developer.android.com/reference/android/app/RemoteInput#getChoices()` is null or empty, and `https://developer.android.com/reference/android/app/RemoteInput#getAllowedDataTypes()` is
non-null and not empty.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

### setResultsSource

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

```
public static void setResultsSource (Intent intent, 
                int source)
```

Set the source of the RemoteInput results. This method should only be called by remote
input collection services (e.g.
`https://developer.android.com/reference/android/service/notification/NotificationListenerService`)
when sending results to a pending intent.

<br />

| Parameters ||
|---|---|
| `intent` | `Intent`: The intent to add remote input source to. The `https://developer.android.com/reference/android/content/ClipData` field of the intent will be modified to contain the source. <br /> |
| `source` | `int`: The source of the results. Value is one of the following: - `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_FREE_FORM_INPUT` - `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_CHOICE` |

**See also:**

- `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_FREE_FORM_INPUT`
- `https://developer.android.com/reference/android/app/RemoteInput#SOURCE_CHOICE`

### writeToParcel

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

```
public void writeToParcel (Parcel out, 
                int flags)
```

Flatten this object in to a Parcel.

<br />

| Parameters ||
|---|---|
| `out` | `Parcel`: The Parcel in which the object should be written. This value cannot be `null`. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |