RemoteInput
public
final
class
RemoteInput
extends Object
implements
Parcelable
| java.lang.Object | |
| ↳ | android.app.RemoteInput |
A 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(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(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);
}
Summary
Nested classes | |
|---|---|
class |
RemoteInput.Builder
Builder class for |
Constants | |
|---|---|
String |
EXTRA_RESULTS_DATA
Extra added to a clip data intent object to hold the text results bundle. |
String |
RESULTS_CLIP_LABEL
Label used to denote the clip data type used for remote input transport |
Inherited constants |
|---|
android.os.Parcelable
|
Fields | |
|---|---|
public
static
final
Creator<RemoteInput> |
CREATOR
|
Public methods | |
|---|---|
static
void
|
addDataResultToIntent(RemoteInput remoteInput, Intent intent, Map<String, Uri> results)
Same as |
static
void
|
addResultsToIntent(RemoteInput[] remoteInputs, Intent intent, Bundle results)
Populate an intent object with the text 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. |
Set<String>
|
getAllowedDataTypes()
Get possible non-textual inputs that are accepted. |
CharSequence[]
|
getChoices()
Get possible input choices. |
static
Map<String, Uri>
|
getDataResultsFromIntent(Intent intent, String remoteInputResultKey)
Similar as |
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
|
static
Bundle
|
getResultsFromIntent(Intent intent)
Get the remote input text results bundle from an intent. |
boolean
|
isDataOnly()
Returns true if the input only accepts data, meaning |
void
|
writeToParcel(Parcel out, int flags)
Flatten this object in to a Parcel. |
Inherited methods | |
|---|---|
java.lang.Object
| |
android.os.Parcelable
| |
Constants
EXTRA_RESULTS_DATA
String EXTRA_RESULTS_DATA
Extra added to a clip data intent object to hold the text results bundle.
Constant Value: "android.remoteinput.resultsData"
RESULTS_CLIP_LABEL
String RESULTS_CLIP_LABEL
Label used to denote the clip data type used for remote input transport
Constant Value: "android.remoteinput.results"
Fields
Public methods
addDataResultToIntent
void addDataResultToIntent (RemoteInput remoteInput, Intent intent, Map<String, Uri> results)
Same as addResultsToIntent(RemoteInput[], Intent, Bundle) but for setting data results. This is used
for inputs that accept non-textual results (see setAllowDataType(String, boolean)).
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.
| Parameters | |
|---|---|
remoteInput |
RemoteInput: The remote input for which results are being provided |
intent |
Intent: The intent to add remote input results to. The ClipData
field of the intent will be modified to contain the results. |
results |
Map: A map of mime type to the Uri result for that mime type.
|
addResultsToIntent
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.
| Parameters | |
|---|---|
remoteInputs |
RemoteInput: The remote inputs for which results are being provided |
intent |
Intent: The intent to add remote inputs to. The ClipData
field of the intent will be modified to contain the results. |
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.
|
describeContents
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 writeToParcel(Parcel, int),
the return value of this method must include the
CONTENTS_FILE_DESCRIPTOR bit.
| Returns | |
|---|---|
int |
a bitmask indicating the set of special object types marshaled by this Parcelable object instance. |
getAllowFreeFormInput
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 getChoices(). An IllegalArgumentException is thrown
if you set this to false and getChoices() returns null or empty.
| Returns | |
|---|---|
boolean |
|
getAllowedDataTypes
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 setAllowDataType(String, boolean).
| Returns | |
|---|---|
Set<String> |
|
getChoices
CharSequence[] getChoices ()
Get possible input choices. This can be null if there are no choices to present.
| Returns | |
|---|---|
CharSequence[] |
|
getDataResultsFromIntent
Map<String, Uri> getDataResultsFromIntent (Intent intent, String remoteInputResultKey)
Similar as getResultsFromIntent(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);
}
| 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. |
remoteInputResultKey |
String: The result key for the RemoteInput you want results for.
|
| Returns | |
|---|---|
Map<String, Uri> |
|
getExtras
Bundle getExtras ()
Get additional metadata carried around with this remote input.
| Returns | |
|---|---|
Bundle |
|
getLabel
CharSequence getLabel ()
Get the label to display to users when collecting this input.
| Returns | |
|---|---|
CharSequence |
|
getResultKey
String getResultKey ()
Get the key that the result of this input will be set in from the Bundle returned by
getResultsFromIntent(Intent) when the PendingIntent is sent.
| Returns | |
|---|---|
String |
|
getResultsFromIntent
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 getCharSequence(String) method to retrieve a value. For non-text
results use getDataResultsFromIntent(Intent, String).
| 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.
|
| Returns | |
|---|---|
Bundle |
|
isDataOnly
boolean isDataOnly ()
Returns true if the input only accepts data, meaning getAllowFreeFormInput()
is false, getChoices() is null or empty, and {@link #getAllowedDataTypes is
non-null and not empty.
| Returns | |
|---|---|
boolean |
|
writeToParcel
void writeToParcel (Parcel out, int flags)
Flatten this object in to a Parcel.
| Parameters | |
|---|---|
out |
Parcel: The Parcel in which the object should be written. |
flags |
int: Additional flags about how the object should be written.
May be 0 or PARCELABLE_WRITE_RETURN_VALUE.
|
Interfaces
- ActionBar.OnMenuVisibilityListener
- ActionBar.OnNavigationListener
- ActionBar.TabListener
- AlarmManager.OnAlarmListener
- Application.ActivityLifecycleCallbacks
- Application.OnProvideAssistDataListener
- AppOpsManager.OnOpChangedListener
- DatePickerDialog.OnDateSetListener
- FragmentBreadCrumbs.OnBreadCrumbClickListener
- FragmentManager.BackStackEntry
- FragmentManager.OnBackStackChangedListener
- KeyguardManager.OnKeyguardExitResult
- LoaderManager.LoaderCallbacks
- Notification.Action.Extender
- Notification.Extender
- PendingIntent.OnFinished
- SearchManager.OnCancelListener
- SearchManager.OnDismissListener
- SharedElementCallback.OnSharedElementsReadyListener
- TimePickerDialog.OnTimeSetListener
- UiAutomation.AccessibilityEventFilter
- UiAutomation.OnAccessibilityEventListener
Classes
- ActionBar
- ActionBar.LayoutParams
- ActionBar.Tab
- Activity
- ActivityGroup
- ActivityManager
- ActivityManager.AppTask
- ActivityManager.MemoryInfo
- ActivityManager.ProcessErrorStateInfo
- ActivityManager.RecentTaskInfo
- ActivityManager.RunningAppProcessInfo
- ActivityManager.RunningServiceInfo
- ActivityManager.RunningTaskInfo
- ActivityManager.TaskDescription
- ActivityOptions
- AlarmManager
- AlarmManager.AlarmClockInfo
- AlertDialog
- AlertDialog.Builder
- AliasActivity
- Application
- ApplicationErrorReport
- ApplicationErrorReport.AnrInfo
- ApplicationErrorReport.BatteryInfo
- ApplicationErrorReport.CrashInfo
- ApplicationErrorReport.RunningServiceInfo
- AppOpsManager
- AutomaticZenRule
- DatePickerDialog
- Dialog
- DialogFragment
- DownloadManager
- DownloadManager.Query
- DownloadManager.Request
- ExpandableListActivity
- Fragment
- Fragment.SavedState
- FragmentBreadCrumbs
- FragmentContainer
- FragmentController
- FragmentHostCallback
- FragmentManager
- FragmentManager.FragmentLifecycleCallbacks
- FragmentManagerNonConfig
- FragmentTransaction
- Instrumentation
- Instrumentation.ActivityMonitor
- Instrumentation.ActivityResult
- IntentService
- KeyguardManager
- KeyguardManager.KeyguardDismissCallback
- KeyguardManager.KeyguardLock
- LauncherActivity
- LauncherActivity.IconResizer
- LauncherActivity.ListItem
- ListActivity
- ListFragment
- LoaderManager
- LocalActivityManager
- MediaRouteActionProvider
- MediaRouteButton
- NativeActivity
- Notification
- Notification.Action
- Notification.Action.Builder
- Notification.Action.WearableExtender
- Notification.BigPictureStyle
- Notification.BigTextStyle
- Notification.Builder
- Notification.CarExtender
- Notification.CarExtender.Builder
- Notification.CarExtender.UnreadConversation
- Notification.DecoratedCustomViewStyle
- Notification.DecoratedMediaCustomViewStyle
- Notification.InboxStyle
- Notification.MediaStyle
- Notification.MessagingStyle
- Notification.MessagingStyle.Message
- Notification.Style
- Notification.WearableExtender
- NotificationChannel
- NotificationChannelGroup
- NotificationManager
- NotificationManager.Policy
- PendingIntent
- PictureInPictureParams
- PictureInPictureParams.Builder
- Presentation
- ProgressDialog
- RemoteAction
- RemoteInput
- RemoteInput.Builder
- SearchableInfo
- SearchManager
- Service
- SharedElementCallback
- TabActivity
- TaskStackBuilder
- TimePickerDialog
- UiAutomation
- UiModeManager
- VoiceInteractor
- VoiceInteractor.AbortVoiceRequest
- VoiceInteractor.CommandRequest
- VoiceInteractor.CompleteVoiceRequest
- VoiceInteractor.ConfirmationRequest
- VoiceInteractor.PickOptionRequest
- VoiceInteractor.PickOptionRequest.Option
- VoiceInteractor.Prompt
- VoiceInteractor.Request
- WallpaperInfo
- WallpaperManager
Exceptions