public final class RemoteInput extends Object implements Parcelable
RemoteInput
object specifies input to be collected from a user to be passed along with
an intent inside a PendingIntent
that is sent.
Always use RemoteInput.Builder
to create instances of this class.
See Receiving Voice Input from a Notification for more information on how to use this class.
The following example adds a RemoteInput
to a 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 RemoteInput.Builder
constructor) from the Bundle returned by 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 PendingIntent
is fired, the intent inside will contain the
input results if collected. To access these results, use the getResultsFromIntent(android.content.Intent)
function. The result values will present under the result key passed to the 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); }
Modifier and Type | Class and Description |
---|---|
static class |
RemoteInput.Builder
Builder class for
RemoteInput objects. |
Parcelable.ClassLoaderCreator<T>, Parcelable.Creator<T>
Modifier and Type | Field and Description |
---|---|
static Parcelable.Creator<RemoteInput> |
CREATOR |
static String |
EXTRA_RESULTS_DATA
Extra added to a clip data intent object to hold the results bundle.
|
static String |
RESULTS_CLIP_LABEL
Label used to denote the clip data type used for remote input transport
|
CONTENTS_FILE_DESCRIPTOR, PARCELABLE_ELIDE_DUPLICATES, PARCELABLE_WRITE_RETURN_VALUE
Modifier and Type | Method and Description |
---|---|
static void |
addResultsToIntent(RemoteInput[] remoteInputs,
Intent intent,
Bundle results)
Populate an intent object with the results gathered from remote input.
|
int |
describeContents()
Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation.
|
boolean |
getAllowFreeFormInput()
Get whether or not users can provide an arbitrary value for
input.
|
CharSequence[] |
getChoices()
Get possible input choices.
|
Bundle |
getExtras()
Get additional metadata carried around with this remote input.
|
CharSequence |
getLabel()
Get the label to display to users when collecting this input.
|
String |
getResultKey()
Get the key that the result of this input will be set in from the Bundle returned by
getResultsFromIntent(android.content.Intent) when the PendingIntent is sent. |
static Bundle |
getResultsFromIntent(Intent intent)
Get the remote input results bundle from an intent.
|
void |
writeToParcel(Parcel out,
int flags)
Flatten this object in to a Parcel.
|
public static final String RESULTS_CLIP_LABEL
public static final String EXTRA_RESULTS_DATA
public static final Parcelable.Creator<RemoteInput> CREATOR
public String getResultKey()
getResultsFromIntent(android.content.Intent)
when the PendingIntent
is sent.public CharSequence getLabel()
public CharSequence[] getChoices()
null
if there are no choices to present.public boolean getAllowFreeFormInput()
false
, users must select one of the
choices in getChoices()
. An IllegalArgumentException
is thrown
if you set this to false and getChoices()
returns null
or empty.public Bundle getExtras()
public static Bundle getResultsFromIntent(Intent intent)
Bundle.getCharSequence(String)
method to retrieve a value.intent
- The intent object that fired in response to an action or content intent
which also had one or more remote input requested.public static void addResultsToIntent(RemoteInput[] remoteInputs, Intent intent, Bundle results)
remoteInputs
- The remote inputs for which results are being providedintent
- The intent to add remote inputs to. The ClipData
field of the intent will be modified to contain the results.results
- 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 result per key.public int describeContents()
Parcelable
Parcelable.writeToParcel(Parcel, int)
,
the return value of this method must include the
Parcelable.CONTENTS_FILE_DESCRIPTOR
bit.describeContents
in interface Parcelable
Parcelable.CONTENTS_FILE_DESCRIPTOR
public void writeToParcel(Parcel out, int flags)
Parcelable
writeToParcel
in interface Parcelable
out
- The Parcel in which the object should be written.flags
- Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE
.