VoiceInteractor

class VoiceInteractor
kotlin.Any
   ↳ android.app.VoiceInteractor

Interface for an Activity to interact with the user through voice. Use Activity.getVoiceInteractor to retrieve the interface, if the activity is currently involved in a voice interaction.

The voice interactor revolves around submitting voice interaction requests to the back-end voice interaction service that is working with the user. These requests are submitted with #submitRequest, providing a new instance of a Request subclass describing the type of operation to perform -- currently the possible requests are ConfirmationRequest and CommandRequest.

Once a request is submitted, the voice system will process it and eventually deliver the result to the request object. The application can cancel a pending request at any time.

The VoiceInteractor is integrated with Activity's state saving mechanism, so that if an activity is being restarted with retained state, it will retain the current VoiceInteractor and any outstanding requests. Because of this, you should always use Request.getActivity to get back to the activity of a request, rather than holding on to the activity instance yourself, either explicitly or implicitly through a non-static inner class.
Requires API level 23 (Android 6.0, Marshmallow)

Summary

Nested classes

Reports that the current interaction can not be complete with voice, so the application will need to switch to a traditional input UI.

Execute a vendor-specific command using the trusted system VoiceInteractionService.

Reports that the current interaction was successfully completed with voice, so the application can report the final status to the user.

Confirms an operation with the user via the trusted system VoiceInteractionService.

Select a single option from multiple potential options with the user via the trusted system VoiceInteractionService.

A set of voice prompts to use with the voice interaction system to confirm an action, select an option, or do similar operations.

abstract

Base class for voice interaction requests that can be submitted to the interactor.

Public methods
VoiceInteractor.Request!

Return any currently active request that was submitted with the given name.

BooleanArray!

Queries the supported commands available from the VoiceInteractionService.

Array<VoiceInteractor.Request!>!

Return all currently active requests.

Boolean

Requires API level 23 (Android 6.0, Marshmallow)

Boolean

Submit a new Request to the voice interaction service.

Public methods

getActiveRequest

added in API level 23
fun getActiveRequest(name: String!): VoiceInteractor.Request!

Return any currently active request that was submitted with the given name.
Requires API level 23 (Android 6.0, Marshmallow)

Parameters
name String!: The name used to submit the request, as per #submitRequest(android.app.VoiceInteractor.Request, String).
Return
VoiceInteractor.Request!: Returns the active request with that name, or null if there was none.

supportsCommands

added in API level 23
fun supportsCommands(commands: Array<String!>!): BooleanArray!

Queries the supported commands available from the VoiceInteractionService. The command is a string that describes the generic operation to be performed. An example might be "org.example.commands.PICK_DATE" to ask the user to pick a date. (Note: This is not an actual working example.)
Requires API level 23 (Android 6.0, Marshmallow)

Parameters
commands Array<String!>!: The array of commands to query for support.
Return
BooleanArray!: Array of booleans indicating whether each command is supported or not.

getActiveRequests

added in API level 23
fun getActiveRequests(): Array<VoiceInteractor.Request!>!

Return all currently active requests.
Requires API level 23 (Android 6.0, Marshmallow)

submitRequest

added in API level 23
fun submitRequest(request: VoiceInteractor.Request!): Boolean

Requires API level 23 (Android 6.0, Marshmallow)

submitRequest

added in API level 23
fun submitRequest(request: VoiceInteractor.Request!, name: String!): Boolean

Submit a new Request to the voice interaction service. The request must be one of the available subclasses -- ConfirmationRequest, PickOptionRequest, CompleteVoiceRequest, AbortVoiceRequest, or CommandRequest.
Requires API level 23 (Android 6.0, Marshmallow)

Parameters
request VoiceInteractor.Request!: The desired request to submit.
name VoiceInteractor.Request!: An optional name for this request, or null. This can be used later with #getActiveRequests and #getActiveRequest to find the request.
Return
Boolean: Returns true of the request was successfully submitted, else false.