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.EntityConfigConfiguration object for specifying what entity types to identify. | 
| Constants | |
|---|---|
| String | EXTRA_FROM_TEXT_CLASSIFIERExtra that is included on activity intents coming from a TextClassifier when it suggests actions to its caller. | 
| String | EXTRA_TEXT_ORIGIN_PACKAGEExtra specifying the package name of the app from which the text to be classified originated. | 
| String | HINT_TEXT_IS_EDITABLEDesignates that the text in question is editable. | 
| String | HINT_TEXT_IS_NOT_EDITABLEDesignates that the text in question is not editable. | 
| String | TYPE_ADDRESSPhysical address. | 
| String | TYPE_DATETime reference that is no more specific than a date. | 
| String | TYPE_DATE_TIMETime reference that includes a specific time. | 
| String | TYPE_EMAILE-mail address (e.g. "noreply@android.com"). | 
| String | TYPE_FLIGHT_NUMBERFlight number in IATA format. | 
| String | TYPE_OTHERThe classifier ran, but didn't recognize a known entity. | 
| String | TYPE_OTPOnetime password. | 
| String | TYPE_PHONEPhone number (e.g. "555-123 456"). | 
| String | TYPE_SMS_RETRIEVER_OTPSMS retriever OTP. | 
| String | TYPE_UNKNOWNThe TextClassifier failed to run. | 
| String | TYPE_URLWeb URL. | 
| String | WIDGET_TYPE_CLIPBOARDThe text classification context is for use with the system clipboard. | 
| String | WIDGET_TYPE_CUSTOM_EDITTEXTThe widget involved in the text classification context is a custom editable text widget. | 
| String | WIDGET_TYPE_CUSTOM_TEXTVIEWThe widget involved in the text classification context is a custom text widget. | 
| String | WIDGET_TYPE_CUSTOM_UNSELECTABLE_TEXTVIEWThe widget involved in the text classification context is a custom non-selectable text widget. | 
| String | WIDGET_TYPE_EDITTEXTThe widget involved in the text classification context is a standard
  | 
| String | WIDGET_TYPE_EDIT_WEBVIEWThe widget involved in the text classification context is a standard editable
  | 
| String | WIDGET_TYPE_NOTIFICATIONThe widget involved in the text classification context is a notification | 
| String | WIDGET_TYPE_TEXTVIEWThe widget involved in the text classification context is a standard
  | 
| String | WIDGET_TYPE_UNKNOWNThe widget involved in the text classification context is of an unknown/unspecified type. | 
| String | WIDGET_TYPE_UNSELECTABLE_TEXTVIEWThe widget involved in the text classification context is a standard non-selectable
  | 
| String | WIDGET_TYPE_WEBVIEWThe widget involved in the text classification context is a standard
  | 
| Fields | |
|---|---|
| 
    public
    static
    final
    TextClassifier | NO_OPNo-op TextClassifier. | 
| Public methods | |
|---|---|
| 
        
        default
        
        
        
        TextClassification | 
      classifyText(TextClassification.Request request)
      Classifies the specified text and returns a  | 
| 
        
        default
        
        
        
        TextClassification | 
      classifyText(CharSequence text, int startIndex, int endIndex, LocaleList defaultLocales)
      Classifies the specified text and returns a  | 
| 
        
        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  | 
| 
        
        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  | 
| 
        
        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
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"
EXTRA_TEXT_ORIGIN_PACKAGE
public static final String EXTRA_TEXT_ORIGIN_PACKAGE
Extra specifying the package name of the app from which the text to be classified originated. For example, a notification assistant might use TextClassifier, but the notification content could originate from a different app. This key allows you to provide the package name of that source app.
Constant Value: "android.view.textclassifier.extra.TEXT_ORIGIN_PACKAGE"
HINT_TEXT_IS_EDITABLE
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
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
public static final String TYPE_ADDRESS
Physical address.
Constant Value: "address"
TYPE_DATE
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
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
public static final String TYPE_EMAIL
E-mail address (e.g. "noreply@android.com").
Constant Value: "email"
TYPE_FLIGHT_NUMBER
public static final String TYPE_FLIGHT_NUMBER
Flight number in IATA format.
Constant Value: "flight"
TYPE_OTHER
public static final String TYPE_OTHER
The classifier ran, but didn't recognize a known entity.
Constant Value: "other"
TYPE_OTP
public static final String TYPE_OTP
Onetime password.
Constant Value: "otp"
TYPE_PHONE
public static final String TYPE_PHONE
Phone number (e.g. "555-123 456").
Constant Value: "phone"
TYPE_SMS_RETRIEVER_OTP
public static final String TYPE_SMS_RETRIEVER_OTP
SMS retriever OTP.
Constant Value: "sms_retriever_otp"
TYPE_UNKNOWN
public static final String TYPE_UNKNOWN
The TextClassifier failed to run.
Constant Value: ""
WIDGET_TYPE_CLIPBOARD
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
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
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
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
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
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
public static final String WIDGET_TYPE_NOTIFICATION
The widget involved in the text classification context is a notification
Constant Value: "notification"
WIDGET_TYPE_TEXTVIEW
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
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
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
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
public static final TextClassifier NO_OP
No-op TextClassifier. This may be used to turn off TextClassifier features.
Public methods
classifyText
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 benull. | 
| Returns | |
|---|---|
| TextClassification | This value cannot be null. | 
classifyText
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 benull. | 
| 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 | 
See also:
destroy
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
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: theTextLanguagerequest.
 This value cannot benull. | 
| Returns | |
|---|---|
| TextLanguage | the TextLanguageresult.
 This value cannot benull. | 
generateLinks
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 benull. | 
| Returns | |
|---|---|
| TextLinks | This value cannot be null. | 
See also:
getMaxGenerateLinksTextLength
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 | |
See also:
isDestroyed
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
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 benull. | 
onTextClassifierEvent
public void onTextClassifierEvent (TextClassifierEvent event)
Reports a text classifier event.
NOTE: Call on a worker thread.
| Parameters | |
|---|---|
| event | TextClassifierEvent: This value cannot benull. | 
| Throws | |
|---|---|
| IllegalStateException | if this TextClassifier has been destroyed. | 
See also:
suggestConversationActions
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 benull. | 
| Returns | |
|---|---|
| ConversationActions | This value cannot be null. | 
suggestSelection
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 benull. | 
| 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 | 
See also:
suggestSelection
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 benull. | 
| Returns | |
|---|---|
| TextSelection | This value cannot be null. | 
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-09-17 UTC.
