InputManager
class InputManager
kotlin.Any | |
↳ | android.hardware.input.InputManager |
Provides information about input devices and available key layouts.
Summary
Nested classes | |
---|---|
abstract |
Listens for changes in input devices. |
Constants | |
---|---|
static String |
Broadcast Action: Query available keyboard layouts. |
static String |
Metadata Key: Keyboard layout metadata associated with |
Public methods | |
---|---|
HostUsiVersion? |
getHostUsiVersion(display: Display) Reports the version of the Universal Stylus Initiative (USI) protocol supported by the given display, if any. |
InputDevice? |
getInputDevice(id: Int) Gets information about the input device with the specified id. |
IntArray! |
Gets the ids of all input devices in the system. |
InputDevice.ViewBehavior? |
getInputDeviceViewBehavior(deviceId: Int) Gets the |
Float |
Returns the maximum allowed obscuring opacity per UID to propagate touches. |
Boolean |
Check if showing a |
Unit |
registerInputDeviceListener(listener: InputManager.InputDeviceListener!, handler: Handler!) Registers an input device listener to receive notifications about when input devices are added, removed or changed. |
Unit |
Unregisters an input device listener. |
VerifiedInputEvent? |
verifyInputEvent(event: InputEvent) Verify the details of an |
Constants
ACTION_QUERY_KEYBOARD_LAYOUTS
static val ACTION_QUERY_KEYBOARD_LAYOUTS: String
Broadcast Action: Query available keyboard layouts.
The input manager service locates available keyboard layouts by querying broadcast receivers that are registered for this action. An application can offer additional keyboard layouts to the user by declaring a suitable broadcast receiver in its manifest.
Here is an example broadcast receiver declaration that an application might include in its AndroidManifest.xml to advertise keyboard layouts. The meta-data specifies a resource that contains a description of each keyboard layout that is provided by the application.
<code> <receiver android:name=".InputDeviceReceiver" android:label="@string/keyboard_layouts_label"> <intent-filter> <action android:name="android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS" /> </intent-filter> <meta-data android:name="android.hardware.input.metadata.KEYBOARD_LAYOUTS" android:resource="@xml/keyboard_layouts" /> </receiver> </code>
In the above example, the @xml/keyboard_layouts
resource refers to an XML resource whose root element is <keyboard-layouts>
that contains zero or more <keyboard-layout>
elements. Each <keyboard-layout>
element specifies the name, label, and location of a key character map for a particular keyboard layout. The label on the receiver is used to name the collection of keyboard layouts provided by this receiver in the keyboard layout settings.
<code> <?xml version="1.0" encoding="utf-8"?> <keyboard-layouts xmlns:android="http://schemas.android.com/apk/res/android"> <keyboard-layout android:name="keyboard_layout_english_us" android:label="@string/keyboard_layout_english_us_label" android:keyboardLayout="@raw/keyboard_layout_english_us" /> </keyboard-layouts> </code>
The android:name
attribute specifies an identifier by which the keyboard layout will be known in the package. The android:label
attribute specifies a human-readable descriptive label to describe the keyboard layout in the user interface, such as "English (US)". The android:keyboardLayout
attribute refers to a key character map resource that defines the keyboard layout. The android:keyboardLocale
attribute specifies a comma separated list of BCP 47 language tags depicting the locales supported by the keyboard layout. This attribute is optional and will be used for auto layout selection for external physical keyboards. The android:keyboardLayoutType
attribute specifies the layoutType for the keyboard layout. This can be either empty or one of the following supported layout types: qwerty, qwertz, azerty, dvorak, colemak, workman, extended, turkish_q, turkish_f. This attribute is optional and will be used for auto layout selection for external physical keyboards.
Value: "android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS"
META_DATA_KEYBOARD_LAYOUTS
static val META_DATA_KEYBOARD_LAYOUTS: String
Metadata Key: Keyboard layout metadata associated with ACTION_QUERY_KEYBOARD_LAYOUTS
.
Specifies the resource id of a XML resource that describes the keyboard layouts that are provided by the application.
Value: "android.hardware.input.metadata.KEYBOARD_LAYOUTS"
Public methods
getHostUsiVersion
fun getHostUsiVersion(display: Display): HostUsiVersion?
Reports the version of the Universal Stylus Initiative (USI) protocol supported by the given display, if any.
Parameters | |
---|---|
display |
Display: This value cannot be null . |
Return | |
---|---|
HostUsiVersion? |
the USI version supported by the display, or null if the device does not support USI |
See Also
getInputDevice
fun getInputDevice(id: Int): InputDevice?
Gets information about the input device with the specified id.
Parameters | |
---|---|
id |
Int: The device id. |
Return | |
---|---|
InputDevice? |
The input device or null if not found. |
getInputDeviceIds
fun getInputDeviceIds(): IntArray!
Gets the ids of all input devices in the system.
Return | |
---|---|
IntArray! |
The input device ids. |
getInputDeviceViewBehavior
fun getInputDeviceViewBehavior(deviceId: Int): InputDevice.ViewBehavior?
Gets the InputDevice.ViewBehavior
of the input device with a given id
.
Use this API to query a fresh view behavior instance whenever the input device changes.
Parameters | |
---|---|
deviceId |
Int: the id of the input device whose view behavior is being requested. |
Return | |
---|---|
InputDevice.ViewBehavior? |
the view behavior of the input device with the provided id, or null if there is not input device with the provided id. |
getMaximumObscuringOpacityForTouch
fun getMaximumObscuringOpacityForTouch(): Float
Returns the maximum allowed obscuring opacity per UID to propagate touches.
For certain window types (eg. LayoutParams#TYPE_APPLICATION_OVERLAY
), the decision of honoring LayoutParams#FLAG_NOT_TOUCHABLE
or not depends on the combined obscuring opacity of the windows above the touch-consuming window, per UID. Check documentation of LayoutParams#FLAG_NOT_TOUCHABLE
for more details.
The value returned is between 0 (inclusive) and 1 (inclusive).
Return | |
---|---|
Float |
Value is between 0 and 1 inclusive |
isStylusPointerIconEnabled
fun isStylusPointerIconEnabled(): Boolean
Check if showing a android.view.PointerIcon
for styluses is enabled.
Return | |
---|---|
Boolean |
true if a pointer icon will be shown over the location of a stylus pointer, false if there is no pointer icon shown for styluses. |
registerInputDeviceListener
fun registerInputDeviceListener(
listener: InputManager.InputDeviceListener!,
handler: Handler!
): Unit
Registers an input device listener to receive notifications about when input devices are added, removed or changed.
Parameters | |
---|---|
listener |
InputManager.InputDeviceListener!: The listener to register. |
handler |
Handler!: The handler on which the listener should be invoked, or null if the listener should be invoked on the calling thread's looper. |
See Also
unregisterInputDeviceListener
fun unregisterInputDeviceListener(listener: InputManager.InputDeviceListener!): Unit
Unregisters an input device listener.
Parameters | |
---|---|
listener |
InputManager.InputDeviceListener!: The listener to unregister. |
See Also
verifyInputEvent
fun verifyInputEvent(event: InputEvent): VerifiedInputEvent?
Verify the details of an android.view.InputEvent
that came from the system. If the event did not come from the system, or its details could not be verified, then this will return null
. Receiving null
does not mean that the event did not originate from the system, just that we were unable to verify it. This can happen for a number of reasons during normal operation.
Parameters | |
---|---|
event |
InputEvent: The android.view.InputEvent to check. This value cannot be null . |
Return | |
---|---|
VerifiedInputEvent? |
android.view.VerifiedInputEvent , which is a subset of the provided android.view.InputEvent , or null if the event could not be verified. |