# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Nested Classes | Constants | Methods | Inherited Methods

# InputManager

`public final class InputManager`
`extends Object` ``

java.lang.Object
↳ | android.hardware.input.InputManager

Provides information about input devices and available key layouts.

## Summary

### Nested classes
`interface` | `InputManager.InputDeviceListener` Listens for changes in input devices.

### Constants
`String` | `ACTION_QUERY_KEYBOARD_LAYOUTS` Broadcast Action: Query available keyboard layouts.
`String` | `META_DATA_KEYBOARD_LAYOUTS` Metadata Key: Keyboard layout metadata associated with `ACTION_QUERY_KEYBOARD_LAYOUTS`.

### Public methods
`InputDevice` | `getInputDevice(int id)` Gets information about the input device with the specified id.
`int[]` | `getInputDeviceIds()` Gets the ids of all input devices in the system.
`float` | `getMaximumObscuringOpacityForTouch()` Returns the maximum allowed obscuring opacity per UID to propagate touches.
`void` | `registerInputDeviceListener(InputManager.InputDeviceListener listener, Handler handler)` Registers an input device listener to receive notifications about when input devices are added, removed or changed.
`void` | `unregisterInputDeviceListener(InputManager.InputDeviceListener listener)` Unregisters an input device listener.
`VerifiedInputEvent` | `verifyInputEvent(InputEvent event)` Verify the details of an `InputEvent` that came from the system.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Constants

### ACTION_QUERY_KEYBOARD_LAYOUTS

    public static final String ACTION_QUERY_KEYBOARD_LAYOUTS

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.

     <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>

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.

     <?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>

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.

Constant Value: "android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS"

### META_DATA_KEYBOARD_LAYOUTS

    public static final String META_DATA_KEYBOARD_LAYOUTS

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.

Constant Value: "android.hardware.input.metadata.KEYBOARD_LAYOUTS"

## Public methods

### getInputDevice

    public InputDevice getInputDevice (int id)

Gets information about the input device with the specified id.

Parameters
`id` | `int`: The device id.

Returns
`InputDevice` | The input device or null if not found.

### getInputDeviceIds

    public int[] getInputDeviceIds ()

Gets the ids of all input devices in the system.

Returns
`int[]` | The input device ids.

### getMaximumObscuringOpacityForTouch

    public float getMaximumObscuringOpacityForTouch ()

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).

Returns
`float` | Value is between 0 and 1 inclusive

See also:

- `WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE`

### registerInputDeviceListener

    public void registerInputDeviceListener (InputManager.InputDeviceListener listener,
                    Handler handler)

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(InputManager.InputDeviceListener)`

### unregisterInputDeviceListener

    public void unregisterInputDeviceListener (InputManager.InputDeviceListener listener)

Unregisters an input device listener.

Parameters
`listener` | `InputManager.InputDeviceListener`: The listener to unregister.

See also:

- `registerInputDeviceListener(InputManager.InputDeviceListener, Handler)`

### verifyInputEvent

    public VerifiedInputEvent verifyInputEvent (InputEvent event)

Verify the details of an `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 `InputEvent` to check This value cannot be `null`.

Returns
`VerifiedInputEvent` | `VerifiedInputEvent`, which is a subset of the provided `InputEvent` `null` if the event could not be verified.

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*