VoiceInteractionSession
  public
  
  
  
  class
  VoiceInteractionSession
  
    extends Object
  
  
  
  
  
      implements
      
        ComponentCallbacks2, 
      
        KeyEvent.Callback
      
  
  
| java.lang.Object | |
| ↳ | android.service.voice.VoiceInteractionSession | 
An active voice interaction session, providing a facility for the implementation
 to interact with the user in the voice interaction layer. The user interface is
 initially shown by default, and can be created by overriding onCreateContentView()
 in which the UI can be built.
 
A voice interaction session can be self-contained, ultimately calling finish()
 when done. It can also initiate voice interactions with applications by calling
 startVoiceActivity(Intent)
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | VoiceInteractionSession.AbortVoiceRequestA request to report that the current user interaction can not be completed with voice, as per
  | 
| 
        
        
        
        
        class | VoiceInteractionSession.ActivityIdRepresents the id of an assist source activity. | 
| 
        
        
        
        
        class | VoiceInteractionSession.AssistStateRepresents assist state captured when this session was started. | 
| 
        
        
        
        
        class | VoiceInteractionSession.CommandRequestA generic vendor-specific request, as per
  | 
| 
        
        
        
        
        class | VoiceInteractionSession.CompleteVoiceRequestA request to simply inform the user that the voice operation has completed, as per
  | 
| 
        
        
        
        
        class | VoiceInteractionSession.ConfirmationRequestA request for confirmation from the user of an operation, as per
  | 
| 
        
        
        
        
        class | VoiceInteractionSession.InsetsInformation about where interesting parts of the input method UI appear. | 
| 
        
        
        
        
        class | VoiceInteractionSession.PickOptionRequestA request for the user to pick from a set of option, as per
  | 
| 
        
        
        
        
        class | VoiceInteractionSession.RequestBase class representing a request from a voice-driver app to perform a particular voice operation with the user. | 
| 
        
        
        
        
        interface | VoiceInteractionSession.VisibleActivityCallbackCallback interface for receiving visible activity changes used for assistant usage. | 
| Constants | |
|---|---|
| String | KEY_FOREGROUND_ACTIVITIESBundle key used to specify foreground activity app components. | 
| String | KEY_SHOW_SESSION_IDBundle key used to specify the id when the system prepares to show session. | 
| int | SHOW_SOURCE_ACTIVITYFlag for use with  | 
| int | SHOW_SOURCE_APPLICATIONFlag for use with  | 
| int | SHOW_SOURCE_ASSIST_GESTUREFlag for use with  | 
| int | SHOW_SOURCE_AUTOMOTIVE_SYSTEM_UIFlag for use with  | 
| int | SHOW_SOURCE_NOTIFICATIONFlag for use with  | 
| int | SHOW_SOURCE_PUSH_TO_TALKFlag for use with  | 
| int | SHOW_WITH_ASSISTFlag received in  | 
| int | SHOW_WITH_SCREENSHOTFlag received in  | 
| Inherited constants | 
|---|
| Public constructors | |
|---|---|
| 
      VoiceInteractionSession(Context context)
       | |
| 
      VoiceInteractionSession(Context context, Handler handler)
       | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        void | 
      closeSystemDialogs()
      Request that all system dialogs (and status bar shade etc) be closed, allowing access to the session's UI. | 
| 
        
        
        
        
        
        void | 
      dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args)
      Print the Service's state into the given stream. | 
| 
        
        
        
        
        
        void | 
      finish()
      Finish the session. | 
| 
        
        
        
        
        
        Context | 
      getContext()
       | 
| 
        
        
        
        
        
        int | 
      getDisabledShowContext()
      Equivalent to  | 
| 
        
        
        
        
        
        LayoutInflater | 
      getLayoutInflater()
      Convenience for inflating views. | 
| 
        
        
        
        
        
        int | 
      getUserDisabledShowContext()
      Return which show context flags have been disabled by the user through the system settings UI, so the session will never get this data. | 
| 
        
        
        
        
        
        Dialog | 
      getWindow()
      Retrieve the window being used to show the session's UI. | 
| 
        
        
        
        
        
        void | 
      hide()
      Hide the session's UI, if currently shown. | 
| 
        
        
        
        
        
        void | 
      onAssistStructureFailure(Throwable failure)
      Called when there has been a failure transferring the  | 
| 
        
        
        
        
        
        void | 
      onBackPressed()
      Called when the user presses the back button while focus is in the session UI. | 
| 
        
        
        
        
        
        void | 
      onCancelRequest(VoiceInteractionSession.Request request)
      Called when the  | 
| 
        
        
        
        
        
        void | 
      onCloseSystemDialogs()
      Sessions automatically watch for requests that all system UI be closed (such as when the user presses HOME), which will appear here. | 
| 
        
        
        
        
        
        void | 
      onComputeInsets(VoiceInteractionSession.Insets outInsets)
      Compute the interesting insets into your UI. | 
| 
        
        
        
        
        
        void | 
      onConfigurationChanged(Configuration newConfig)
      Called by the system when the device configuration changes while your component is running. | 
| 
        
        
        
        
        
        void | 
      onCreate()
      Initiatize a new session. | 
| 
        
        
        
        
        
        View | 
      onCreateContentView()
      Hook in which to create the session's UI. | 
| 
        
        
        
        
        
        void | 
      onDestroy()
      Last callback to the session as it is being finished. | 
| 
        
        
        
        
        
        void | 
      onDirectActionsInvalidated(VoiceInteractionSession.ActivityId activityId)
      Called when the direct actions are invalidated. | 
| 
        
        
        
        
        
        boolean[] | 
      onGetSupportedCommands(String[] commands)
      Request to query for what extended commands the session supports. | 
| 
        
        
        
        
        
        void | 
      onHandleAssist(Bundle data, AssistStructure structure, AssistContent content)
      
      This method was deprecated
      in API level 29.
    use  | 
| 
        
        
        
        
        
        void | 
      onHandleAssist(VoiceInteractionSession.AssistState state)
      Called to receive data from the application that the user was currently viewing when an assist session is started. | 
| 
        
        
        
        
        
        void | 
      onHandleAssistSecondary(Bundle data, AssistStructure structure, AssistContent content, int index, int count)
      
      This method was deprecated
      in API level 29.
    use  | 
| 
        
        
        
        
        
        void | 
      onHandleScreenshot(Bitmap screenshot)
      Called to receive a screenshot of what the user was currently viewing when an assist session is started. | 
| 
        
        
        
        
        
        void | 
      onHide()
      Called immediately after stopping to show the session UI. | 
| 
        
        
        
        
        
        boolean | 
      onKeyDown(int keyCode, KeyEvent event)
      Called when a key down event has occurred. | 
| 
        
        
        
        
        
        boolean | 
      onKeyLongPress(int keyCode, KeyEvent event)
      Called when a long press has occurred. | 
| 
        
        
        
        
        
        boolean | 
      onKeyMultiple(int keyCode, int count, KeyEvent event)
      Called when a user's interaction with an analog control, such as flinging a trackball, generates simulated down/up events for the same key multiple times in quick succession. | 
| 
        
        
        
        
        
        boolean | 
      onKeyUp(int keyCode, KeyEvent event)
      Called when a key up event has occurred. | 
| 
        
        
        
        
        
        void | 
      onLockscreenShown()
      Called when the lockscreen was shown. | 
| 
        
        
        
        
        
        void | 
      onLowMemory()
      This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. | 
| 
        
        
        
        
        
        void | 
      onPrepareShow(Bundle args, int showFlags)
      Called prior to  | 
| 
        
        
        
        
        
        void | 
      onRequestAbortVoice(VoiceInteractionSession.AbortVoiceRequest request)
      Request to abort the voice interaction session because the voice activity can not complete its interaction using voice. | 
| 
        
        
        
        
        
        void | 
      onRequestCommand(VoiceInteractionSession.CommandRequest request)
      Process an arbitrary extended command from the caller,
 corresponding to a  | 
| 
        
        
        
        
        
        void | 
      onRequestCompleteVoice(VoiceInteractionSession.CompleteVoiceRequest request)
      Request to complete the voice interaction session because the voice activity successfully completed its interaction using voice. | 
| 
        
        
        
        
        
        void | 
      onRequestConfirmation(VoiceInteractionSession.ConfirmationRequest request)
      Request to confirm with the user before proceeding with an unrecoverable operation,
 corresponding to a  | 
| 
        
        
        
        
        
        void | 
      onRequestPickOption(VoiceInteractionSession.PickOptionRequest request)
      Request for the user to pick one of N options, corresponding to a
  | 
| 
        
        
        
        
        
        void | 
      onShow(Bundle args, int showFlags)
      Called when the session UI is going to be shown. | 
| 
        
        
        
        
        
        void | 
      onTaskFinished(Intent intent, int taskId)
      Called when the last activity of a task initiated by
  | 
| 
        
        
        
        
        
        void | 
      onTaskStarted(Intent intent, int taskId)
      Called when a task initiated by  | 
| 
        
        
        
        
        
        void | 
      onTrimMemory(int level)
      Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. | 
| 
        
        
        
        final
        
        void | 
      performDirectAction(DirectAction action, Bundle extras, CancellationSignal cancellationSignal, Executor resultExecutor, Consumer<Bundle> resultListener)
      Asks that an action be performed by the app. | 
| 
        
        
        
        final
        
        void | 
      registerVisibleActivityCallback(Executor executor, VoiceInteractionSession.VisibleActivityCallback callback)
      Registers a callback that will be notified when visible activities have been changed. | 
| 
        
        
        
        final
        
        void | 
      requestDirectActions(VoiceInteractionSession.ActivityId activityId, CancellationSignal cancellationSignal, Executor resultExecutor, Consumer<List<DirectAction>> callback)
      Requests a list of supported actions from an app. | 
| 
        
        
        
        
        
        void | 
      setContentView(View view)
       | 
| 
        
        
        
        
        
        void | 
      setDisabledShowContext(int flags)
      Equivalent to  | 
| 
        
        
        
        
        
        void | 
      setKeepAwake(boolean keepAwake)
      Set whether this session will keep the device awake while it is running a voice activity. | 
| 
        
        
        
        
        
        void | 
      setTheme(int theme)
      You can call this to customize the theme used by your IME's window. | 
| 
        
        
        
        
        
        void | 
      setUiEnabled(boolean enabled)
      Control whether the UI layer for this session is enabled. | 
| 
        
        
        
        
        
        void | 
      show(Bundle args, int flags)
      Show the UI for this session. | 
| 
        
        
        
        
        
        void | 
      startAssistantActivity(Intent intent, Bundle bundle)
      Ask that a new assistant activity be started. | 
| 
        
        
        
        
        
        void | 
      startAssistantActivity(Intent intent)
      Ask that a new assistant activity be started. | 
| 
        
        
        
        
        
        void | 
      startVoiceActivity(Intent intent)
      Ask that a new activity be started for voice interaction. | 
| 
        
        
        
        final
        
        void | 
      unregisterVisibleActivityCallback(VoiceInteractionSession.VisibleActivityCallback callback)
      Unregisters the callback. | 
| Inherited methods | |
|---|---|
Constants
KEY_FOREGROUND_ACTIVITIES
public static final String KEY_FOREGROUND_ACTIVITIES
Bundle key used to specify foreground activity app components.
Type: ArrayList<ComponentName>
See also:
Constant Value: "android.service.voice.FOREGROUND_ACTIVITIES"
KEY_SHOW_SESSION_ID
public static final String KEY_SHOW_SESSION_ID
Bundle key used to specify the id when the system prepares to show session. It increases for each request.
Type: int
See also:
Constant Value: "android.service.voice.SHOW_SESSION_ID"
SHOW_SOURCE_ACTIVITY
public static final int SHOW_SOURCE_ACTIVITY
Flag for use with onShow(Bundle, int): indicates that an Activity has invoked the voice
 interaction service for a local interaction using
 Activity.startLocalVoiceInteraction(Bundle).
Constant Value: 16 (0x00000010)
SHOW_SOURCE_APPLICATION
public static final int SHOW_SOURCE_APPLICATION
Flag for use with onShow(Bundle, int): indicates that the application itself has invoked
 the assistant.
Constant Value: 8 (0x00000008)
SHOW_SOURCE_ASSIST_GESTURE
public static final int SHOW_SOURCE_ASSIST_GESTURE
Flag for use with onShow(Bundle, int): indicates that the session has been started from the
 system assist gesture.
Constant Value: 4 (0x00000004)
SHOW_SOURCE_AUTOMOTIVE_SYSTEM_UI
public static final int SHOW_SOURCE_AUTOMOTIVE_SYSTEM_UI
Flag for use with onShow(Bundle, int): indicates that the voice interaction service was invoked
 from an Android automotive system UI.
Constant Value: 128 (0x00000080)
SHOW_SOURCE_NOTIFICATION
public static final int SHOW_SOURCE_NOTIFICATION
Flag for use with onShow(Bundle, int): indicates that the voice interaction service was invoked
 from a notification.
Constant Value: 64 (0x00000040)
SHOW_SOURCE_PUSH_TO_TALK
public static final int SHOW_SOURCE_PUSH_TO_TALK
Flag for use with onShow(Bundle, int): indicates that the voice interaction service was invoked
 from a physical button.
Constant Value: 32 (0x00000020)
SHOW_WITH_ASSIST
public static final int SHOW_WITH_ASSIST
Flag received in onShow(Bundle, int): originator requested that the session be started with
 assist data from the currently focused activity.
Constant Value: 1 (0x00000001)
SHOW_WITH_SCREENSHOT
public static final int SHOW_WITH_SCREENSHOT
Flag received in onShow(Bundle, int): originator requested that the session be started with
 a screen shot of the currently focused activity.
Constant Value: 2 (0x00000002)
Public constructors
VoiceInteractionSession
public VoiceInteractionSession (Context context)
| Parameters | |
|---|---|
| context | Context | 
VoiceInteractionSession
public VoiceInteractionSession (Context context, Handler handler)
| Parameters | |
|---|---|
| context | Context | 
| handler | Handler | 
Public methods
closeSystemDialogs
public void closeSystemDialogs ()
Request that all system dialogs (and status bar shade etc) be closed, allowing access to the session's UI. This will not cause the lock screen to be dismissed.
dump
public void dump (String prefix, FileDescriptor fd, PrintWriter writer, String[] args)
Print the Service's state into the given stream.  This gets invoked by
 VoiceInteractionSessionService when its Service
 Service.dump(FileDescriptor, PrintWriter, String) method is called.
| Parameters | |
|---|---|
| prefix | String: Text to print at the front of each line. | 
| fd | FileDescriptor: The raw file descriptor that the dump is being sent to. | 
| writer | PrintWriter: The PrintWriter to which you should dump your state.  This will be
 closed for you after you return. | 
| args | String: additional arguments to the dump request. | 
finish
public void finish ()
Finish the session.  This completely destroys the session -- the next time it is shown,
 an entirely new one will be created.  You do not normally call this function; instead,
 use hide() and allow the system to destroy your session if it needs its RAM.
getDisabledShowContext
public int getDisabledShowContext ()
Equivalent to VoiceInteractionService.getDisabledShowContext.
| Returns | |
|---|---|
| int | |
getLayoutInflater
public LayoutInflater getLayoutInflater ()
Convenience for inflating views.
| Returns | |
|---|---|
| LayoutInflater | |
getUserDisabledShowContext
public int getUserDisabledShowContext ()
Return which show context flags have been disabled by the user through the system
 settings UI, so the session will never get this data.  Returned flags are any combination of
 VoiceInteractionSession.SHOW_WITH_ASSIST and
 VoiceInteractionSession.SHOW_WITH_SCREENSHOT.  Note that this only tells you about
 global user settings, not about restrictions that may be applied contextual based on
 the current application the user is in or other transient states.
| Returns | |
|---|---|
| int | |
getWindow
public Dialog getWindow ()
Retrieve the window being used to show the session's UI.
| Returns | |
|---|---|
| Dialog | |
hide
public void hide ()
Hide the session's UI, if currently shown. Call this when you are done with your user interaction.
onAssistStructureFailure
public void onAssistStructureFailure (Throwable failure)
Called when there has been a failure transferring the AssistStructure to
 the assistant.  This may happen, for example, if the data is too large and results
 in an out of memory exception, the data has been cleared during transferring due to
 the new incoming assist data, or the client has provided corrupt data. This will be
 called immediately before onHandleAssist(Bundle, AssistStructure, AssistContent) and the AssistStructure supplied
 there afterwards will be null.
| Parameters | |
|---|---|
| failure | Throwable: The failure exception that was thrown when building theAssistStructure. | 
onBackPressed
public void onBackPressed ()
Called when the user presses the back button while focus is in the session UI.  Note
 that this will only happen if the session UI has requested input focus in its window;
 otherwise, the back key will go to whatever window has focus and do whatever behavior
 it normally has there.  The default implementation simply calls hide().
onCancelRequest
public void onCancelRequest (VoiceInteractionSession.Request request)
Called when the VoiceInteractor has asked to cancel a Request
 that was previously delivered to onRequestConfirmation(ConfirmationRequest),
 onRequestPickOption(PickOptionRequest), onRequestCompleteVoice(CompleteVoiceRequest), onRequestAbortVoice(AbortVoiceRequest),
 or onRequestCommand(CommandRequest).
| Parameters | |
|---|---|
| request | VoiceInteractionSession.Request: The request that is being canceled. | 
onCloseSystemDialogs
public void onCloseSystemDialogs ()
Sessions automatically watch for requests that all system UI be closed (such as when
 the user presses HOME), which will appear here.  The default implementation always
 calls hide().
onComputeInsets
public void onComputeInsets (VoiceInteractionSession.Insets outInsets)
Compute the interesting insets into your UI.  The default implementation
 sets outInsets.contentInsets.top to the height
 of the window, meaning it should not adjust content underneath.  The default touchable
 insets are Insets.TOUCHABLE_INSETS_FRAME, meaning it consumes all touch
 events within its window frame.
| Parameters | |
|---|---|
| outInsets | VoiceInteractionSession.Insets: Fill in with the current UI insets. | 
onConfigurationChanged
public void onConfigurationChanged (Configuration newConfig)
Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources.
At the time that this function has been called, your Resources object will have been updated to return resource values matching the new configuration.
For more information, read Handling Runtime Changes.
| Parameters | |
|---|---|
| newConfig | Configuration: The new device configuration.
 This value cannot benull. | 
onCreate
public void onCreate ()
Initiatize a new session.  At this point you don't know exactly what this
 session will be used for; you will find that out in onShow(Bundle, int).
onCreateContentView
public View onCreateContentView ()
Hook in which to create the session's UI.
| Returns | |
|---|---|
| View | |
onDestroy
public void onDestroy ()
Last callback to the session as it is being finished.
onDirectActionsInvalidated
public void onDirectActionsInvalidated (VoiceInteractionSession.ActivityId activityId)
Called when the direct actions are invalidated.
| Parameters | |
|---|---|
| activityId | VoiceInteractionSession.ActivityId: This value cannot benull. | 
onGetSupportedCommands
public boolean[] onGetSupportedCommands (String[] commands)
Request to query for what extended commands the session supports.
| Parameters | |
|---|---|
| commands | String: An array of commands that are being queried. | 
| Returns | |
|---|---|
| boolean[] | Return an array of booleans indicating which of each entry in the command array is supported. A true entry in the array indicates the command is supported; false indicates it is not. The default implementation returns an array of all false entries. | 
onHandleAssist
public void onHandleAssist (Bundle data, AssistStructure structure, AssistContent content)
      This method was deprecated
      in API level 29.
    use onHandleAssist(android.service.voice.VoiceInteractionSession.AssistState)
  
Called to receive data from the application that the user was currently viewing when
 -     * an assist session is started.  If the original show request did not specify
 SHOW_WITH_ASSIST, this method will not be called.
| Parameters | |
|---|---|
| data | Bundle: Arbitrary data supplied by the app throughActivity.onProvideAssistData.
 May be null if assist data has been disabled by the user or device policy. | 
| structure | AssistStructure: If available, the structure definition of all windows currently
 displayed by the app.  May be null if assist data has been disabled by the user
 or device policy; will be an empty stub if the application has disabled assist
 by marking its window as secure. | 
| content | AssistContent: Additional content data supplied by the app throughActivity.onProvideAssistContent.
 May be null if assist data has been disabled by the user or device policy; will
 not be automatically filled in with data from the app if the app has marked its
 window as secure. | 
onHandleAssist
public void onHandleAssist (VoiceInteractionSession.AssistState state)
Called to receive data from the application that the user was currently viewing when
 an assist session is started. If the original show request did not specify
 SHOW_WITH_ASSIST, AssistState parameter will only provide
 ActivityId. If there was a failure to write the assist data to
 AssistStructure, the AssistState.getAssistStructure() will return null.
 
This method is called for all activities along with an index and count that indicates
 which activity the data is for. index will be between 0 and count-1 and
 this method is called once for each activity in no particular order. The count
 indicates how many activities to expect assist data for, including the top focused one.
 The focused activity can be determined by calling AssistState.isFocused().
 
To be responsive to assist requests, process assist data as soon as it is received, without waiting for all queued activities to return assist data.
| Parameters | |
|---|---|
| state | VoiceInteractionSession.AssistState: The state object capturing the state of an activity.
 This value cannot benull. | 
onHandleAssistSecondary
public void onHandleAssistSecondary (Bundle data, AssistStructure structure, AssistContent content, int index, int count)
      This method was deprecated
      in API level 29.
    use onHandleAssist(android.service.voice.VoiceInteractionSession.AssistState)
  
Called to receive data from other applications that the user was or is interacting with, that are currently on the screen in a multi-window display environment, not including the currently focused activity. This could be a free-form window, a picture-in-picture window, or another window in a split-screen display.
 This method is very similar to
 onHandleAssist(Bundle, AssistStructure, AssistContent) except that it is called
 for additional non-focused activities along with an index and count that indicates
 which additional activity the data is for. index will be between 1 and
 count-1 and this method is called once for each additional window, in no particular
 order. The count indicates how many windows to expect assist data for, including the
 top focused activity, which continues to be returned via onHandleAssist(Bundle, AssistStructure, AssistContent).
 
To be responsive to assist requests, process assist data as soon as it is received, without waiting for all queued activities to return assist data.
| Parameters | |
|---|---|
| data | Bundle: Arbitrary data supplied by the app throughActivity.onProvideAssistData.
 May be null if assist data has been disabled by the user or device policy. | 
| structure | AssistStructure: If available, the structure definition of all windows currently
 displayed by the app.  May be null if assist data has been disabled by the user
 or device policy; will be an empty stub if the application has disabled assist
 by marking its window as secure. | 
| content | AssistContent: Additional content data supplied by the app throughActivity.onProvideAssistContent.
 May be null if assist data has been disabled by the user or device policy; will
 not be automatically filled in with data from the app if the app has marked its
 window as secure. | 
| index | int: the index of the additional activity that this data
        is for. | 
| count | int: the total number of additional activities for which the assist data is being
        returned, including the focused activity that is returned viaonHandleAssist(Bundle, AssistStructure, AssistContent). | 
onHandleScreenshot
public void onHandleScreenshot (Bitmap screenshot)
Called to receive a screenshot of what the user was currently viewing when an assist
 session is started.  May be null if screenshots are disabled by the user, policy,
 or application.  If the original show request did not specify
 SHOW_WITH_SCREENSHOT, this method will not be called.
| Parameters | |
|---|---|
| screenshot | Bitmap: This value may benull. | 
onHide
public void onHide ()
Called immediately after stopping to show the session UI.
onKeyDown
public boolean onKeyDown (int keyCode, 
                KeyEvent event)Called when a key down event has occurred.  If you return true,
 you can first call KeyEvent.startTracking() to have the framework track the event
 through its onKeyUp(int, android.view.KeyEvent) and also call your
 onKeyLongPress(int, android.view.KeyEvent) if it occurs.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false. | 
onKeyLongPress
public boolean onKeyLongPress (int keyCode, 
                KeyEvent event)Called when a long press has occurred.  If you return true,
 the final key up will have KeyEvent.FLAG_CANCELED and
 KeyEvent.FLAG_CANCELED_LONG_PRESS set.  Note that in
 order to receive this callback, someone in the event change
 must return true from onKeyDown(int, KeyEvent) and
 call KeyEvent.startTracking() on the event.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false. | 
onKeyMultiple
public boolean onKeyMultiple (int keyCode, 
                int count, 
                KeyEvent event)Called when a user's interaction with an analog control, such as flinging a trackball, generates simulated down/up events for the same key multiple times in quick succession.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| count | int: Number of pairs as returned by event.getRepeatCount(). | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false. | 
onKeyUp
public boolean onKeyUp (int keyCode, 
                KeyEvent event)Called when a key up event has occurred.
| Parameters | |
|---|---|
| keyCode | int: The value in event.getKeyCode(). | 
| event | KeyEvent: Description of the key event. | 
| Returns | |
|---|---|
| boolean | If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false. | 
onLockscreenShown
public void onLockscreenShown ()
Called when the lockscreen was shown.
onLowMemory
public void onLowMemory ()
This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. While the exact point at which this will be called is not defined, generally it will happen when all background process have been killed. That is, before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing.
onPrepareShow
public void onPrepareShow (Bundle args, int showFlags)
Called prior to onShow(Bundle, int) before any UI setup has occurred.  Not generally useful.
| Parameters | |
|---|---|
| args | Bundle: The arguments that were supplied toVoiceInteractionService.showSession. | 
| showFlags | int: The show flags originally provided toVoiceInteractionService.showSession. | 
onRequestAbortVoice
public void onRequestAbortVoice (VoiceInteractionSession.AbortVoiceRequest request)
Request to abort the voice interaction session because the voice activity can not
 complete its interaction using voice.  Corresponds to
 VoiceInteractor.AbortVoiceRequest.  The default implementation just sends an empty
 confirmation back to allow the activity to exit.
| Parameters | |
|---|---|
| request | VoiceInteractionSession.AbortVoiceRequest: The active request. | 
onRequestCommand
public void onRequestCommand (VoiceInteractionSession.CommandRequest request)
Process an arbitrary extended command from the caller,
 corresponding to a VoiceInteractor.CommandRequest.
| Parameters | |
|---|---|
| request | VoiceInteractionSession.CommandRequest: The active request. | 
onRequestCompleteVoice
public void onRequestCompleteVoice (VoiceInteractionSession.CompleteVoiceRequest request)
Request to complete the voice interaction session because the voice activity successfully
 completed its interaction using voice.  Corresponds to
 VoiceInteractor.CompleteVoiceRequest.  The default implementation just sends an empty
 confirmation back to allow the activity to exit.
| Parameters | |
|---|---|
| request | VoiceInteractionSession.CompleteVoiceRequest: The active request. | 
onRequestConfirmation
public void onRequestConfirmation (VoiceInteractionSession.ConfirmationRequest request)
Request to confirm with the user before proceeding with an unrecoverable operation,
 corresponding to a VoiceInteractor.ConfirmationRequest.
| Parameters | |
|---|---|
| request | VoiceInteractionSession.ConfirmationRequest: The active request. | 
onRequestPickOption
public void onRequestPickOption (VoiceInteractionSession.PickOptionRequest request)
Request for the user to pick one of N options, corresponding to a
 VoiceInteractor.PickOptionRequest.
| Parameters | |
|---|---|
| request | VoiceInteractionSession.PickOptionRequest: The active request. | 
onShow
public void onShow (Bundle args, int showFlags)
Called when the session UI is going to be shown.  This is called after
 onCreateContentView() (if the session's content UI needed to be created) and
 immediately prior to the window being shown.  This may be called while the window
 is already shown, if a show request has come in while it is shown, to allow you to
 update the UI to match the new show arguments.
| Parameters | |
|---|---|
| args | Bundle: The arguments that were supplied toVoiceInteractionService.showSession.
 Some example keys include :
 | 
| showFlags | int: The show flags originally provided toVoiceInteractionService.showSession. | 
onTaskFinished
public void onTaskFinished (Intent intent, int taskId)
Called when the last activity of a task initiated by
 startVoiceActivity(android.content.Intent) has finished.  The default
 implementation calls finish() on the assumption that this represents
 the completion of a voice action.  You can override the implementation if you would
 like a different behavior.
| Parameters | |
|---|---|
| intent | Intent: The originalIntentsupplied tostartVoiceActivity(android.content.Intent). | 
| taskId | int: Unique ID of the finished task. | 
onTaskStarted
public void onTaskStarted (Intent intent, int taskId)
Called when a task initiated by startVoiceActivity(android.content.Intent)
 has actually started.
| Parameters | |
|---|---|
| intent | Intent: The originalIntentsupplied tostartVoiceActivity(android.content.Intent). | 
| taskId | int: Unique ID of the now running task. | 
onTrimMemory
public void onTrimMemory (int level)
Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. You should never compare to exact values of the level, since new intermediate values may be added -- you will typically want to compare if the value is greater or equal to a level you are interested in.
To retrieve the processes current trim level at any point, you can
 use ActivityManager.getMyMemoryState(RunningAppProcessInfo).
| Parameters | |
|---|---|
| level | int: The context of the trim, giving a hint of the amount of
 trimming the application may like to perform.
 Value isComponentCallbacks2.TRIM_MEMORY_COMPLETE,ComponentCallbacks2.TRIM_MEMORY_MODERATE,ComponentCallbacks2.TRIM_MEMORY_BACKGROUND,ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN,ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL,ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW, orComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE | 
performDirectAction
public final void performDirectAction (DirectAction action, Bundle extras, CancellationSignal cancellationSignal, Executor resultExecutor, Consumer<Bundle> resultListener)
Asks that an action be performed by the app. This will send a request to the app which provided this action.
An action could take time to execute and the result is provided asynchronously via a callback. If the action is taking longer and you want to cancel its execution you can pass in a cancellation signal through which to notify the app to abort the action.
| Parameters | |
|---|---|
| action | DirectAction: The action to be performed.
 This value cannot benull. | 
| extras | Bundle: Any optional extras sent to the app as part of the request
 This value may benull. | 
| cancellationSignal | CancellationSignal: A signal to cancel the operation in progress,
                          ornullif none. | 
| resultExecutor | Executor: The handler to receive the callback.
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| resultListener | Consumer: The callback to receive the response.
 This value cannot benull. | 
registerVisibleActivityCallback
public final void registerVisibleActivityCallback (Executor executor, VoiceInteractionSession.VisibleActivityCallback callback)
Registers a callback that will be notified when visible activities have been changed.
 Note: The VisibleActivityCallback.onVisible(VisibleActivityInfo) will be called
 immediately with current visible activities when the callback is registered for the first
 time. If the callback is already registered, this method does nothing.
| Parameters | |
|---|---|
| executor | Executor: The executor which will be used to invoke the callback.
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | VoiceInteractionSession.VisibleActivityCallback: The callback to receive the response.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalStateException | if calling this method before onCreate(). | 
requestDirectActions
public final void requestDirectActions (VoiceInteractionSession.ActivityId activityId, CancellationSignal cancellationSignal, Executor resultExecutor, Consumer<List<DirectAction>> callback)
Requests a list of supported actions from an app.
| Parameters | |
|---|---|
| activityId | VoiceInteractionSession.ActivityId: Ths activity id of the app to get the actions from.
 This value cannot benull. | 
| cancellationSignal | CancellationSignal: A signal to cancel the operation in progress,
     ornullif none. | 
| resultExecutor | Executor: The handler to receive the callback.
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | Consumer: The callback to receive the response.
 This value cannot benull. | 
setDisabledShowContext
public void setDisabledShowContext (int flags)
Equivalent to VoiceInteractionService.setDisabledShowContext(int).
| Parameters | |
|---|---|
| flags | int | 
setKeepAwake
public void setKeepAwake (boolean keepAwake)
Set whether this session will keep the device awake while it is running a voice activity. By default, the system holds a wake lock for it while in this state, so that it can work even if the screen is off. Setting this to false removes that wake lock, allowing the CPU to go to sleep. This is typically used if the session decides it has been waiting too long for a response from the user and doesn't want to let this continue to drain the battery.
Passing false here will release the wake lock, and you can call later with
 true to re-acquire it.  It will also be automatically re-acquired for you each
 time you start a new voice activity task -- that is when you call
 startVoiceActivity(Intent).
| Parameters | |
|---|---|
| keepAwake | boolean | 
setTheme
public void setTheme (int theme)
You can call this to customize the theme used by your IME's window.
 This must be set before onCreate(), so you
 will typically call it in your constructor with the resource ID
 of your custom theme.
| Parameters | |
|---|---|
| theme | int | 
setUiEnabled
public void setUiEnabled (boolean enabled)
Control whether the UI layer for this session is enabled.  It is enabled by default.
 If set to false, you will not be able to provide a UI through onCreateContentView().
| Parameters | |
|---|---|
| enabled | boolean | 
show
public void show (Bundle args, int flags)
Show the UI for this session.  This asks the system to go through the process of showing
 your UI, which will eventually culminate in onShow(Bundle, int).  This is similar to calling
 VoiceInteractionService.showSession.
| Parameters | |
|---|---|
| args | Bundle: Arbitrary arguments that will be propagatedonShow(Bundle, int). | 
| flags | int: Indicates additional optional behavior that should be performed. May
 be any combination ofVoiceInteractionSession.SHOW_WITH_ASSISTandVoiceInteractionSession.SHOW_WITH_SCREENSHOTto request that the system generate and deliver assist data on the current foreground
 app as part of showing the session UI. | 
startAssistantActivity
public void startAssistantActivity (Intent intent, Bundle bundle)
Ask that a new assistant activity be started.  This will create a new task in the
 in activity manager: this means that
 Intent.FLAG_ACTIVITY_NEW_TASK
 will be set for you to make it a new task.
The newly started activity will be displayed on top of other activities in the system in a new layer that is not affected by multi-window mode. Tasks started from this activity will go into the normal activity layer and not this new layer.
By default, the system will create a window for the UI for this session.  If you are using
 an assistant activity instead, then you can disable the window creation by calling
 setUiEnabled(boolean) in onPrepareShow(android.os.Bundle, int).
| Parameters | |
|---|---|
| intent | Intent: the intent used to start an assistant activity
 This value cannot benull. | 
| bundle | Bundle: Additional options for how the Activity should be started. SeeActivityOptionsfor how to build the Bundle supplied here.
 This value cannot benull. | 
startAssistantActivity
public void startAssistantActivity (Intent intent)
Ask that a new assistant activity be started.  This will create a new task in the
 in activity manager: this means that
 Intent.FLAG_ACTIVITY_NEW_TASK
 will be set for you to make it a new task.
The newly started activity will be displayed on top of other activities in the system in a new layer that is not affected by multi-window mode. Tasks started from this activity will go into the normal activity layer and not this new layer.
By default, the system will create a window for the UI for this session.  If you are using
 an assistant activity instead, then you can disable the window creation by calling
 setUiEnabled(boolean) in onPrepareShow(android.os.Bundle, int).
startAssistantActivity(android.content.Intent, android.os.Bundle) instead.
    | Parameters | |
|---|---|
| intent | Intent | 
startVoiceActivity
public void startVoiceActivity (Intent intent)
Ask that a new activity be started for voice interaction.  This will create a
 new dedicated task in the activity manager for this voice interaction session;
 this means that Intent.FLAG_ACTIVITY_NEW_TASK
 will be set for you to make it a new task.
 
The newly started activity will be displayed to the user in a special way, as a layer under the voice interaction UI.
As the voice activity runs, it can retrieve a VoiceInteractor
 through which it can perform voice interactions through your session.  These requests
 for voice interactions will appear as callbacks on onGetSupportedCommands(String),
 onRequestConfirmation(ConfirmationRequest), onRequestPickOption(PickOptionRequest),
 onRequestCompleteVoice(CompleteVoiceRequest), onRequestAbortVoice(AbortVoiceRequest),
 or onRequestCommand(CommandRequest)
 
You will receive a call to onTaskStarted(Intent, int) when the task starts up
 and onTaskFinished(Intent, int) when the last activity has finished.
| Parameters | |
|---|---|
| intent | Intent: The Intent to start this voice interaction.  The given Intent will
 always haveIntent.CATEGORY_VOICEadded to it, since
 this is part of a voice interaction. | 
unregisterVisibleActivityCallback
public final void unregisterVisibleActivityCallback (VoiceInteractionSession.VisibleActivityCallback callback)
Unregisters the callback.
| Parameters | |
|---|---|
| callback | VoiceInteractionSession.VisibleActivityCallback: The callback to receive the response.
 This value cannot benull. | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
