Stay organized with collections
Save and categorize content based on your preferences.
Base classes for writing input methods (such as software keyboards). These APIs are not for use by
normal applications, they are a framework specifically for writing input
method components. Implementations will typically derive from
InputMethodService
.
Interfaces
Classes
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.
[null,null,["Last updated 2025-02-10 UTC."],[],[],null,["# android.inputmethodservice\n\nAdded in [API level 3](/guide/topics/manifest/uses-sdk-element#ApiLevels) \n\nandroid.inputmethodservice\n==========================\n\n*** ** * ** ***\n\n[Kotlin](/reference/kotlin/android/inputmethodservice/package-summary \"View this page in Kotlin\") \\|Java\nBase classes for writing input methods (such as software keyboards). These APIs are not for use by normal applications, they are a framework specifically for writing input method components. Implementations will typically derive from [InputMethodService](/reference/android/inputmethodservice/InputMethodService).\n\nInterfaces\n----------\n\n|----------------------------------------------------------------------------------------------------------------------|---------------------------------------|\n| [KeyboardView.OnKeyboardActionListener](/reference/android/inputmethodservice/KeyboardView.OnKeyboardActionListener) | Listener for virtual keyboard events. |\n\nClasses\n-------\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [AbstractInputMethodService](/reference/android/inputmethodservice/AbstractInputMethodService) | AbstractInputMethodService provides a abstract base class for input methods. |\n| [AbstractInputMethodService.AbstractInputMethodImpl](/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodImpl) | Base class for derived classes to implement their [InputMethod](/reference/android/view/inputmethod/InputMethod) interface. |\n| [AbstractInputMethodService.AbstractInputMethodSessionImpl](/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodSessionImpl) | Base class for derived classes to implement their [InputMethodSession](/reference/android/view/inputmethod/InputMethodSession) interface. |\n| [ExtractEditText](/reference/android/inputmethodservice/ExtractEditText) | Specialization of [EditText](/reference/android/widget/EditText) for showing and interacting with the extracted text in a full-screen input method. |\n| [InputMethodService](/reference/android/inputmethodservice/InputMethodService) | InputMethodService provides a standard implementation of an InputMethod, which final implementations can derive from and customize. |\n| [InputMethodService.InputMethodImpl](/reference/android/inputmethodservice/InputMethodService.InputMethodImpl) | Concrete implementation of [AbstractInputMethodService.AbstractInputMethodImpl](/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodImpl) that provides all of the standard behavior for an input method. |\n| [InputMethodService.InputMethodSessionImpl](/reference/android/inputmethodservice/InputMethodService.InputMethodSessionImpl) | Concrete implementation of [AbstractInputMethodService.AbstractInputMethodSessionImpl](/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodSessionImpl) that provides all of the standard behavior for an input method session. |\n| [InputMethodService.Insets](/reference/android/inputmethodservice/InputMethodService.Insets) | Information about where interesting parts of the input method UI appear. |\n| [Keyboard](/reference/android/inputmethodservice/Keyboard) | *This class was deprecated in API level 29. This class is deprecated because this is just a convenient UI widget class that application developers can re-implement on top of existing public APIs. If you have already depended on this class, consider copying the implementation from AOSP into your project or re-implementing a similar widget by yourselves* |\n| [Keyboard.Key](/reference/android/inputmethodservice/Keyboard.Key) | Class for describing the position and characteristics of a single key in the keyboard. |\n| [Keyboard.Row](/reference/android/inputmethodservice/Keyboard.Row) | Container for keys in the keyboard. |\n| [KeyboardView](/reference/android/inputmethodservice/KeyboardView) | *This class was deprecated in API level 29. This class is deprecated because this is just a convenient UI widget class that application developers can re-implement on top of existing public APIs. If you have already depended on this class, consider copying the implementation from AOSP into your project or re-implementing a similar widget by yourselves* |\n\n-\n\n Interfaces\n ----------\n\n - [KeyboardView.OnKeyboardActionListener](/reference/android/inputmethodservice/KeyboardView.OnKeyboardActionListener)\n-\n\n Classes\n -------\n\n - [AbstractInputMethodService](/reference/android/inputmethodservice/AbstractInputMethodService)\n - [AbstractInputMethodService.AbstractInputMethodImpl](/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodImpl)\n - [AbstractInputMethodService.AbstractInputMethodSessionImpl](/reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodSessionImpl)\n - [ExtractEditText](/reference/android/inputmethodservice/ExtractEditText)\n - [InputMethodService](/reference/android/inputmethodservice/InputMethodService)\n - [InputMethodService.InputMethodImpl](/reference/android/inputmethodservice/InputMethodService.InputMethodImpl)\n - [InputMethodService.InputMethodSessionImpl](/reference/android/inputmethodservice/InputMethodService.InputMethodSessionImpl)\n - [InputMethodService.Insets](/reference/android/inputmethodservice/InputMethodService.Insets)\n - [Keyboard](/reference/android/inputmethodservice/Keyboard)\n - [Keyboard.Key](/reference/android/inputmethodservice/Keyboard.Key)\n - [Keyboard.Row](/reference/android/inputmethodservice/Keyboard.Row)\n - [KeyboardView](/reference/android/inputmethodservice/KeyboardView)"]]