Added in API level 26

TextClassifier

public interface TextClassifier

android.view.textclassifier.TextClassifier


Interface for providing text classification related features.

The TextClassifier may be used to understand the meaning of text, as well as generating predicted next actions based on the text.

NOTE: Unless otherwise stated, methods of this interface are blocking operations. Call on a worker thread.

Summary

Nested classes

class TextClassifier.EntityConfig

Configuration object for specifying what entity types to identify. 

Constants

String EXTRA_FROM_TEXT_CLASSIFIER

Extra that is included on activity intents coming from a TextClassifier when it suggests actions to its caller.

String HINT_TEXT_IS_EDITABLE

Designates that the text in question is editable.

String HINT_TEXT_IS_NOT_EDITABLE

Designates that the text in question is not editable.

String TYPE_ADDRESS

Physical address.

String TYPE_DATE

Time reference that is no more specific than a date.

String TYPE_DATE_TIME

Time reference that includes a specific time.

String TYPE_EMAIL

E-mail address (e.g. "noreply@android.com").

String TYPE_FLIGHT_NUMBER

Flight number in IATA format.

String TYPE_OTHER

The classifier ran, but didn't recognize a known entity.

String TYPE_OTP_CODE

One-time login codes

String TYPE_PHONE

Phone number (e.g. "555-123 456").

String TYPE_UNKNOWN

The TextClassifier failed to run.

String TYPE_URL

Web URL.

String WIDGET_TYPE_CLIPBOARD

The text classification context is for use with the system clipboard.

String WIDGET_TYPE_CUSTOM_EDITTEXT

The widget involved in the text classification context is a custom editable text widget.

String WIDGET_TYPE_CUSTOM_TEXTVIEW

The widget involved in the text classification context is a custom text widget.

String WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW

The widget involved in the text classification context is a custom non-selectable text widget.

String WIDGET_TYPE_EDITTEXT

The widget involved in the text classification context is a standard EditText.

String WIDGET_TYPE_EDIT_WEBVIEW

The widget involved in the text classification context is a standard editable WebView.

String WIDGET_TYPE_NOTIFICATION

The widget involved in the text classification context is a notification

String WIDGET_TYPE_TEXTVIEW

The widget involved in the text classification context is a standard TextView.

String WIDGET_TYPE_UNKNOWN

The widget involved in the text classification context is of an unknown/unspecified type.

String WIDGET_TYPE_UNSELECTABLE_TEXTVIEW

The widget involved in the text classification context is a standard non-selectable TextView.

String WIDGET_TYPE_WEBVIEW

The widget involved in the text classification context is a standard WebView.

Fields

public static final TextClassifier NO_OP

No-op TextClassifier.

Public methods

default TextClassification classifyText(TextClassification.Request request)

Classifies the specified text and returns a TextClassification object that can be used to generate a widget for handling the classified text.

default TextClassification classifyText(CharSequence text, int startIndex, int endIndex, LocaleList defaultLocales)

Classifies the specified text and returns a TextClassification object that can be used to generate a widget for handling the classified text.

default void destroy()

Destroys this TextClassifier.

default TextLanguage detectLanguage(TextLanguage.Request request)

Detects the language of the text in the given request.

default TextLinks generateLinks(TextLinks.Request request)

Generates and returns a TextLinks that may be applied to the text to annotate it with links information.

default int getMaxGenerateLinksTextLength()

Returns the maximal length of text that can be processed by generateLinks.

default boolean isDestroyed()

Returns whether or not this TextClassifier has been destroyed.

default void onSelectionEvent(SelectionEvent event)

NOTE: Use onTextClassifierEvent(android.view.textclassifier.TextClassifierEvent) instead.

default void onTextClassifierEvent(TextClassifierEvent event)

Reports a text classifier event.

default ConversationActions suggestConversationActions(ConversationActions.Request request)

Suggests and returns a list of actions according to the given conversation.

default TextSelection suggestSelection(CharSequence text, int selectionStartIndex, int selectionEndIndex, LocaleList defaultLocales)

Returns suggested text selection start and end indices, recognized entity types, and their associated confidence scores.

default TextSelection suggestSelection(TextSelection.Request request)

Returns suggested text selection start and end indices, recognized entity types, and their associated confidence scores.

Constants

EXTRA_FROM_TEXT_CLASSIFIER

Added in API level 29
public static final String EXTRA_FROM_TEXT_CLASSIFIER

Extra that is included on activity intents coming from a TextClassifier when it suggests actions to its caller.

All TextClassifier implementations should make sure this extra exists in their generated intents.

Constant Value: "android.view.textclassifier.extra.FROM_TEXT_CLASSIFIER"

HINT_TEXT_IS_EDITABLE

Added in API level 28
public static final String HINT_TEXT_IS_EDITABLE

Designates that the text in question is editable. *

Constant Value: "android.text_is_editable"

HINT_TEXT_IS_NOT_EDITABLE

Added in API level 28
public static final String HINT_TEXT_IS_NOT_EDITABLE

Designates that the text in question is not editable. *

Constant Value: "android.text_is_not_editable"

TYPE_ADDRESS

Added in API level 26
public static final String TYPE_ADDRESS

Physical address.

Constant Value: "address"

TYPE_DATE

Added in API level 28
public static final String TYPE_DATE

Time reference that is no more specific than a date. May be absolute such as "01/01/2000" or relative like "tomorrow". *

Constant Value: "date"

TYPE_DATE_TIME

Added in API level 28
public static final String TYPE_DATE_TIME

Time reference that includes a specific time. May be absolute such as "01/01/2000 5:30pm" or relative like "tomorrow at 5:30pm". *

Constant Value: "datetime"

TYPE_EMAIL

Added in API level 26
public static final String TYPE_EMAIL

E-mail address (e.g. "noreply@android.com").

Constant Value: "email"

TYPE_FLIGHT_NUMBER

Added in API level 28
public static final String TYPE_FLIGHT_NUMBER

Flight number in IATA format.

Constant Value: "flight"

TYPE_OTHER

Added in API level 26
public static final String TYPE_OTHER

The classifier ran, but didn't recognize a known entity.

Constant Value: "other"

TYPE_OTP_CODE

public static final String TYPE_OTP_CODE

One-time login codes

Constant Value: "otp_code"

TYPE_PHONE

Added in API level 26
public static final String TYPE_PHONE

Phone number (e.g. "555-123 456").

Constant Value: "phone"

TYPE_UNKNOWN

Added in API level 28
public static final String TYPE_UNKNOWN

The TextClassifier failed to run.

Constant Value: ""

TYPE_URL

Added in API level 26
public static final String TYPE_URL

Web URL.

Constant Value: "url"

WIDGET_TYPE_CLIPBOARD

Added in API level 31
public static final String WIDGET_TYPE_CLIPBOARD

The text classification context is for use with the system clipboard.

Constant Value: "clipboard"

WIDGET_TYPE_CUSTOM_EDITTEXT

Added in API level 28
public static final String WIDGET_TYPE_CUSTOM_EDITTEXT

The widget involved in the text classification context is a custom editable text widget.

Constant Value: "customedit"

WIDGET_TYPE_CUSTOM_TEXTVIEW

Added in API level 28
public static final String WIDGET_TYPE_CUSTOM_TEXTVIEW

The widget involved in the text classification context is a custom text widget.

Constant Value: "customview"

WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW

Added in API level 28
public static final String WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEW

The widget involved in the text classification context is a custom non-selectable text widget.

Constant Value: "nosel-customview"

WIDGET_TYPE_EDITTEXT

Added in API level 28
public static final String WIDGET_TYPE_EDITTEXT

The widget involved in the text classification context is a standard EditText.

Constant Value: "edittext"

WIDGET_TYPE_EDIT_WEBVIEW

Added in API level 28
public static final String WIDGET_TYPE_EDIT_WEBVIEW

The widget involved in the text classification context is a standard editable WebView.

Constant Value: "edit-webview"

WIDGET_TYPE_NOTIFICATION

Added in API level 29
public static final String WIDGET_TYPE_NOTIFICATION

The widget involved in the text classification context is a notification

Constant Value: "notification"

WIDGET_TYPE_TEXTVIEW

Added in API level 28
public static final String WIDGET_TYPE_TEXTVIEW

The widget involved in the text classification context is a standard TextView.

Constant Value: "textview"

WIDGET_TYPE_UNKNOWN

Added in API level 28
public static final String WIDGET_TYPE_UNKNOWN

The widget involved in the text classification context is of an unknown/unspecified type.

Constant Value: "unknown"

WIDGET_TYPE_UNSELECTABLE_TEXTVIEW

Added in API level 28
public static final String WIDGET_TYPE_UNSELECTABLE_TEXTVIEW

The widget involved in the text classification context is a standard non-selectable TextView.

Constant Value: "nosel-textview"

WIDGET_TYPE_WEBVIEW

Added in API level 28
public static final String WIDGET_TYPE_WEBVIEW

The widget involved in the text classification context is a standard WebView.

Constant Value: "webview"

Fields

NO_OP

Added in API level 26
public static final TextClassifier NO_OP

No-op TextClassifier. This may be used to turn off TextClassifier features.

Public methods

classifyText

Added in API level 28
public TextClassification classifyText (TextClassification.Request request)

Classifies the specified text and returns a TextClassification object that can be used to generate a widget for handling the classified text.

NOTE: Call on a worker thread.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().
This method may take several seconds to complete, so it should only be called from a worker thread.

Parameters
request TextClassification.Request: the text classification request This value cannot be null.

Returns
TextClassification This value cannot be null.

classifyText

Added in API level 26
public TextClassification classifyText (CharSequence text, 
                int startIndex, 
                int endIndex, 
                LocaleList defaultLocales)

Classifies the specified text and returns a TextClassification object that can be used to generate a widget for handling the classified text.

NOTE: Call on a worker thread.

NOTE: Do not implement. The default implementation of this method calls classifyText(android.view.textclassifier.TextClassification.Request). If that method calls this method, a stack overflow error will happen.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().
This method may take several seconds to complete, so it should only be called from a worker thread.

Parameters
text CharSequence: text providing context for the text to classify (which is specified by the sub sequence starting at startIndex and ending at endIndex) This value cannot be null.

startIndex int: start index of the text to classify Value is 0 or greater

endIndex int: end index of the text to classify Value is 0 or greater

defaultLocales LocaleList: ordered list of locale preferences that may be used to disambiguate the provided text. If no locale preferences exist, set this to null or an empty locale list.

Returns
TextClassification This value cannot be null.

Throws
IllegalArgumentException if text is null; startIndex is negative; endIndex is greater than text.length() or not greater than startIndex

destroy

Added in API level 28
public void destroy ()

Destroys this TextClassifier.

NOTE: If a TextClassifier has been destroyed, calls to its methods should throw an IllegalStateException. See isDestroyed().

Subsequent calls to this method are no-ops.

detectLanguage

Added in API level 29
public TextLanguage detectLanguage (TextLanguage.Request request)

Detects the language of the text in the given request.

NOTE: Call on a worker thread.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().
This method may take several seconds to complete, so it should only be called from a worker thread.

Parameters
request TextLanguage.Request: the TextLanguage request. This value cannot be null.

Returns
TextLanguage the TextLanguage result. This value cannot be null.

generateLinks

Added in API level 28
public TextLinks generateLinks (TextLinks.Request request)

Generates and returns a TextLinks that may be applied to the text to annotate it with links information.

NOTE: Call on a worker thread.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().
This method may take several seconds to complete, so it should only be called from a worker thread.

Parameters
request TextLinks.Request: the text links request This value cannot be null.

Returns
TextLinks This value cannot be null.

getMaxGenerateLinksTextLength

Added in API level 28
public int getMaxGenerateLinksTextLength ()

Returns the maximal length of text that can be processed by generateLinks.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().
This method may take several seconds to complete, so it should only be called from a worker thread.

Returns
int

isDestroyed

Added in API level 28
public boolean isDestroyed ()

Returns whether or not this TextClassifier has been destroyed.

NOTE: If a TextClassifier has been destroyed, caller should not interact with the classifier and an attempt to do so would throw an IllegalStateException. However, this method should never throw an IllegalStateException.

Returns
boolean

See also:

onSelectionEvent

Added in API level 28
public void onSelectionEvent (SelectionEvent event)

NOTE: Use onTextClassifierEvent(android.view.textclassifier.TextClassifierEvent) instead.

Reports a selection event.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().

Parameters
event SelectionEvent: This value cannot be null.

onTextClassifierEvent

Added in API level 29
public void onTextClassifierEvent (TextClassifierEvent event)

Reports a text classifier event.

NOTE: Call on a worker thread.

Parameters
event TextClassifierEvent: This value cannot be null.

Throws
IllegalStateException if this TextClassifier has been destroyed.

See also:

suggestConversationActions

Added in API level 29
public ConversationActions suggestConversationActions (ConversationActions.Request request)

Suggests and returns a list of actions according to the given conversation.
This method may take several seconds to complete, so it should only be called from a worker thread.

Parameters
request ConversationActions.Request: This value cannot be null.

Returns
ConversationActions This value cannot be null.

suggestSelection

Added in API level 26
public TextSelection suggestSelection (CharSequence text, 
                int selectionStartIndex, 
                int selectionEndIndex, 
                LocaleList defaultLocales)

Returns suggested text selection start and end indices, recognized entity types, and their associated confidence scores. The entity types are ordered from highest to lowest scoring.

NOTE: Call on a worker thread.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().

NOTE: Do not implement. The default implementation of this method calls suggestSelection(android.view.textclassifier.TextSelection.Request). If that method calls this method, a stack overflow error will happen.
This method may take several seconds to complete, so it should only be called from a worker thread.

Parameters
text CharSequence: text providing context for the selected text (which is specified by the sub sequence starting at selectionStartIndex and ending at selectionEndIndex) This value cannot be null.

selectionStartIndex int: start index of the selected part of text Value is 0 or greater

selectionEndIndex int: end index of the selected part of text Value is 0 or greater

defaultLocales LocaleList: ordered list of locale preferences that may be used to disambiguate the provided text. If no locale preferences exist, set this to null or an empty locale list.

Returns
TextSelection This value cannot be null.

Throws
IllegalArgumentException if text is null; selectionStartIndex is negative; selectionEndIndex is greater than text.length() or not greater than selectionStartIndex

suggestSelection

Added in API level 28
public TextSelection suggestSelection (TextSelection.Request request)

Returns suggested text selection start and end indices, recognized entity types, and their associated confidence scores. The entity types are ordered from highest to lowest scoring.

NOTE: Call on a worker thread.

NOTE: If a TextClassifier has been destroyed, calls to this method should throw an IllegalStateException. See isDestroyed().
This method may take several seconds to complete, so it should only be called from a worker thread.

Parameters
request TextSelection.Request: the text selection request This value cannot be null.

Returns
TextSelection This value cannot be null.