| page.title=Dumpsys Input Diagnostics | 
 | @jd:body | 
 |  | 
 | <!-- | 
 |     Copyright 2015 The Android Open Source Project | 
 |  | 
 |     Licensed under the Apache License, Version 2.0 (the "License"); | 
 |     you may not use this file except in compliance with the License. | 
 |     You may obtain a copy of the License at | 
 |  | 
 |         http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 |     Unless required by applicable law or agreed to in writing, software | 
 |     distributed under the License is distributed on an "AS IS" BASIS, | 
 |     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 |     See the License for the specific language governing permissions and | 
 |     limitations under the License. | 
 | --> | 
 | <div id="qv-wrapper"> | 
 |   <div id="qv"> | 
 |     <h2>In this document</h2> | 
 |     <ol id="auto-toc"> | 
 |     </ol> | 
 |   </div> | 
 | </div> | 
 |  | 
 | <p>The <code>dumpsys</code> input command dumps the state of the | 
 | system’s input devices, such as keyboards and touchscreens, and the | 
 | processing of input events.</p> | 
 |  | 
 | <h2 id="input">Input</h2> | 
 | <p>To dump the input system’s state, run the following command:</p> | 
 | <pre> | 
 | $ adb shell dumpsys input | 
 | </pre> | 
 |  | 
 | <h2 id="output">Output</h2> | 
 |  | 
 | <p>The set of information reported varies depending on the version of Android | 
 | but consists of three sections:</p> | 
 |  | 
 | <ul> | 
 |   <li> Event Hub State | 
 |   <li> Input Reader State | 
 |   <li> Input Dispatcher State | 
 | </ul> | 
 |  | 
 | <h3 id="event_hub_state">Event Hub State</h3> | 
 |  | 
 | <pre><code> | 
 | INPUT MANAGER (dumpsys input) | 
 |  | 
 | Event Hub State: | 
 |   BuiltInKeyboardId: -2 | 
 |   Devices: | 
 |     -1: Virtual | 
 |       Classes: 0x40000023 | 
 |       Path: <virtual> | 
 |       Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd | 
 |       Location: | 
 |       ControllerNumber: 0 | 
 |       UniqueId: <virtual> | 
 |       Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 | 
 |       KeyLayoutFile: /system/usr/keylayout/Generic.kl | 
 |       KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm | 
 |       ConfigurationFile: | 
 |       HaveKeyboardLayoutOverlay: false | 
 |     1: msm8974-taiko-mtp-snd-card Headset Jack | 
 |       Classes: 0x00000080 | 
 |       Path: /dev/input/event5 | 
 |       Descriptor: c8e3782483b4837ead6602e20483c46ff801112c | 
 |       Location: ALSA | 
 |       ControllerNumber: 0 | 
 |       UniqueId: | 
 |       Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 | 
 |       KeyLayoutFile: | 
 |       KeyCharacterMapFile: | 
 |       ConfigurationFile: | 
 |       HaveKeyboardLayoutOverlay: false | 
 |     2: msm8974-taiko-mtp-snd-card Button Jack | 
 |       Classes: 0x00000001 | 
 |       Path: /dev/input/event4 | 
 |       Descriptor: 96fe62b244c555351ec576b282232e787fb42bab | 
 |       Location: ALSA | 
 |       ControllerNumber: 0 | 
 |       UniqueId: | 
 |       Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 | 
 |       KeyLayoutFile: /system/usr/keylayout/msm8974-taiko-mtp-snd-card_Button_Jack.kl | 
 |       KeyCharacterMapFile: /system/usr/keychars/msm8974-taiko-mtp-snd-card_Button_Jack.kcm | 
 |       ConfigurationFile: | 
 |       HaveKeyboardLayoutOverlay: false | 
 |     3: hs_detect | 
 |       Classes: 0x00000081 | 
 |       Path: /dev/input/event3 | 
 |       Descriptor: 485d69228e24f5e46da1598745890b214130dbc4 | 
 |       Location: | 
 |       ControllerNumber: 0 | 
 |       UniqueId: | 
 |       Identifier: bus=0x0000, vendor=0x0001, product=0x0001, version=0x0001 | 
 |       KeyLayoutFile: /system/usr/keylayout/hs_detect.kl | 
 |       KeyCharacterMapFile: /system/usr/keychars/hs_detect.kcm | 
 |       ConfigurationFile: | 
 |       HaveKeyboardLayoutOverlay: false | 
 |     4: touch_dev | 
 |       Classes: 0x00000014 | 
 |       Path: /dev/input/event1 | 
 |       Descriptor: 4e2720e99bd2b59adae8529881343531fff7c98e | 
 |       Location: | 
 |       ControllerNumber: 0 | 
 |       UniqueId: | 
 |       Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 | 
 |       KeyLayoutFile: | 
 |       KeyCharacterMapFile: | 
 |       ConfigurationFile: /system/usr/idc/touch_dev.idc | 
 |       HaveKeyboardLayoutOverlay: false | 
 |     5: qpnp_pon | 
 |       Classes: 0x00000001 | 
 |       Path: /dev/input/event0 | 
 |       Descriptor: fb60d4f4370f5dbe8267b63d38dea852987571ab | 
 |       Location: qpnp_pon/input0 | 
 |       ControllerNumber: 0 | 
 |       UniqueId: | 
 |       Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 | 
 |       KeyLayoutFile: /system/usr/keylayout/qpnp_pon.kl | 
 |       KeyCharacterMapFile: /system/usr/keychars/qpnp_pon.kcm | 
 |       ConfigurationFile: | 
 |       HaveKeyboardLayoutOverlay: false | 
 |     6: gpio-keys | 
 |       Classes: 0x00000081 | 
 |       Path: /dev/input/event2 | 
 |       Descriptor: d2c52ff0f656fac4cd7b7a118d575e0109a9fe1c | 
 |       Location: gpio-keys/input0 | 
 |       ControllerNumber: 0 | 
 |       UniqueId: | 
 |       Identifier: bus=0x0019, vendor=0x0001, product=0x0001, version=0x0100 | 
 |       KeyLayoutFile: /system/usr/keylayout/gpio-keys.kl | 
 |       KeyCharacterMapFile: /system/usr/keychars/gpio-keys.kcm | 
 |       ConfigurationFile: | 
 |       HaveKeyboardLayoutOverlay: false | 
 | </code></pre> | 
 |  | 
 | <h4 id="things-to-look-for">Things to check</h4> | 
 |  | 
 | <ul> | 
 |   <li> All of the expected input devices are present.</li> | 
 |  | 
 |   <li> Each input device has an appropriate key layout file, key character map | 
 |   file and input device configuration file.  If the files are missing or contain | 
 |   syntax errors, then they will not be loaded.</li> | 
 |  | 
 |   <li> Each input device is being classified correctly.  The bits in the | 
 |   <code>Classes</code> field correspond to flags in <code>EventHub.h</code> such | 
 |   as <code>INPUT_DEVICE_CLASS_TOUCH_MT</code>.</li> | 
 |  | 
 |   <li> The <code>BuiltInKeyboardId</code> is correct.  If the device does not | 
 |   have a built-in keyboard, then the id must be <code>-2</code>, otherwise it | 
 |   should be the id of the built-in keyboard.</li> | 
 |  | 
 |   <li>If you observe that the <code>BuiltInKeyboardId</code> is not | 
 |   <code>-2</code> but it should be, then you are missing a key character map file | 
 |   for a special function keypad somewhere.  Special function keypad devices | 
 |   should have key character map files that contain just the line <code>type | 
 |   SPECIAL_FUNCTION</code> (that's what in the <code>tuna-gpio-keykad.kcm</code> | 
 |   file we see mentioned above).</li> | 
 | </ul> | 
 |  | 
 | <h3 id="input-reader-state">Input Reader State</h3> | 
 | <p>The <code>InputReader</code> is responsible for decoding input events from the kernel. | 
 | Its state dump shows information about how each input device is configured | 
 | and recent state changes that have occurred, such as key presses or touches on | 
 | the touch screen.</p> | 
 |  | 
 | <p>As an example, this is what a special function keypad looks like:</p> | 
 |  | 
 | <pre> | 
 | Input Reader State | 
 | ... | 
 |   Device 3: tuna-gpio-keypad | 
 |     IsExternal: false | 
 |     Sources: 0x00000101 | 
 |     KeyboardType: 1 | 
 |     Keyboard Input Mapper: | 
 |       Parameters: | 
 |         AssociatedDisplayId: -1 | 
 |         OrientationAware: false | 
 |       KeyboardType: 1 | 
 |       Orientation: 0 | 
 |       KeyDowns: 0 keys currently down | 
 |       MetaState: 0x0 | 
 |       DownTime: 75816923828000 | 
 | </pre> | 
 |  | 
 | <p>Here is a touch screen.  Notice all of the information about the resolution of | 
 | the device and the calibration parameters that were used.</p> | 
 |  | 
 | <pre> | 
 | Input Reader State | 
 | ... | 
 |   Device 6: Melfas MMSxxx Touchscreen | 
 |       IsExternal: false | 
 |       Sources: 0x00001002 | 
 |       KeyboardType: 0 | 
 |       Motion Ranges: | 
 |         X: source=0x00001002, min=0.000, max=719.001, flat=0.000, fuzz=0.999 | 
 |         Y: source=0x00001002, min=0.000, max=1279.001, flat=0.000, fuzz=0.999 | 
 |         PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000 | 
 |         SIZE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000 | 
 |         TOUCH_MAJOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 | 
 |         TOUCH_MINOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 | 
 |         TOOL_MAJOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 | 
 |         TOOL_MINOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 | 
 |       Touch Input Mapper: | 
 |         Parameters: | 
 |           GestureMode: spots | 
 |           DeviceType: touchScreen | 
 |           AssociatedDisplay: id=0, isExternal=false | 
 |           OrientationAware: true | 
 |         Raw Touch Axes: | 
 |           X: min=0, max=720, flat=0, fuzz=0, resolution=0 | 
 |           Y: min=0, max=1280, flat=0, fuzz=0, resolution=0 | 
 |           Pressure: min=0, max=255, flat=0, fuzz=0, resolution=0 | 
 |           TouchMajor: min=0, max=30, flat=0, fuzz=0, resolution=0 | 
 |           TouchMinor: unknown range | 
 |           ToolMajor: unknown range | 
 |           ToolMinor: unknown range | 
 |           Orientation: unknown range | 
 |           Distance: unknown range | 
 |           TiltX: unknown range | 
 |           TiltY: unknown range | 
 |           TrackingId: min=0, max=65535, flat=0, fuzz=0, resolution=0 | 
 |           Slot: min=0, max=9, flat=0, fuzz=0, resolution=0 | 
 |         Calibration: | 
 |           touch.size.calibration: diameter | 
 |           touch.size.scale: 10.000 | 
 |           touch.size.bias: 0.000 | 
 |           touch.size.isSummed: false | 
 |           touch.pressure.calibration: amplitude | 
 |           touch.pressure.scale: 0.005 | 
 |           touch.orientation.calibration: none | 
 |           touch.distance.calibration: none | 
 |         SurfaceWidth: 720px | 
 |         SurfaceHeight: 1280px | 
 |         SurfaceOrientation: 0 | 
 |         Translation and Scaling Factors: | 
 |           XScale: 0.999 | 
 |           YScale: 0.999 | 
 |           XPrecision: 1.001 | 
 |           YPrecision: 1.001 | 
 |           GeometricScale: 0.999 | 
 |           PressureScale: 0.005 | 
 |           SizeScale: 0.033 | 
 |           OrientationCenter: 0.000 | 
 |           OrientationScale: 0.000 | 
 |           DistanceScale: 0.000 | 
 |           HaveTilt: false | 
 |           TiltXCenter: 0.000 | 
 |           TiltXScale: 0.000 | 
 |           TiltYCenter: 0.000 | 
 |           TiltYScale: 0.000 | 
 |         Last Button State: 0x00000000 | 
 |         Last Raw Touch: pointerCount=0 | 
 |         Last Cooked Touch: pointerCount=0 | 
 | </pre> | 
 |  | 
 | <p>Here is an external keyboard / mouse combo HID device.  (This device doesn't actually | 
 | have a mouse but its HID descriptor says it does.)</p> | 
 |  | 
 | <pre><code>  Device 7: Motorola Bluetooth Wireless Keyboard | 
 |     IsExternal: true | 
 |     Sources: 0x00002103 | 
 |     KeyboardType: 2 | 
 |     Motion Ranges: | 
 |       X: source=0x00002002, min=0.000, max=719.000, flat=0.000, fuzz=0.000 | 
 |       Y: source=0x00002002, min=0.000, max=1279.000, flat=0.000, fuzz=0.000 | 
 |       PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000 | 
 |       VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000 | 
 |     Keyboard Input Mapper: | 
 |       Parameters: | 
 |         AssociatedDisplayId: -1 | 
 |         OrientationAware: false | 
 |       KeyboardType: 2 | 
 |       Orientation: 0 | 
 |       KeyDowns: 0 keys currently down | 
 |       MetaState: 0x0 | 
 |       DownTime: 75868832946000 | 
 |     Cursor Input Mapper: | 
 |       Parameters: | 
 |         AssociatedDisplayId: 0 | 
 |         Mode: pointer | 
 |         OrientationAware: false | 
 |       XScale: 1.000 | 
 |       YScale: 1.000 | 
 |       XPrecision: 1.000 | 
 |       YPrecision: 1.000 | 
 |       HaveVWheel: true | 
 |       HaveHWheel: false | 
 |       VWheelScale: 1.000 | 
 |       HWheelScale: 1.000 | 
 |       Orientation: 0 | 
 |       ButtonState: 0x00000000 | 
 |       Down: false | 
 |       DownTime: 0 | 
 | </code></pre> | 
 | <p>Here is a joystick.  Notice how all of the axes have been scaled to a normalized | 
 | range.  The axis mapping can be configured using key layout files.</p> | 
 | <pre><code>Device 18: Logitech Logitech Cordless RumblePad 2 | 
 |     IsExternal: true | 
 |     Sources: 0x01000511 | 
 |     KeyboardType: 1 | 
 |     Motion Ranges: | 
 |       X: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000 | 
 |       Y: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000 | 
 |       Z: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000 | 
 |       RZ: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000 | 
 |       HAT_X: source=0x01000010, min=-1.000, max=1.000, flat=0.000, fuzz=0.000 | 
 |       HAT_Y: source=0x01000010, min=-1.000, max=1.000, flat=0.000, fuzz=0.000 | 
 |     Keyboard Input Mapper: | 
 |       Parameters: | 
 |         AssociatedDisplayId: -1 | 
 |         OrientationAware: false | 
 |       KeyboardType: 1 | 
 |       Orientation: 0 | 
 |       KeyDowns: 0 keys currently down | 
 |       MetaState: 0x0 | 
 |       DownTime: 675270841000 | 
 |     Joystick Input Mapper: | 
 |       Axes: | 
 |         X: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000 | 
 |           scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000 | 
 |           rawAxis=0, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0 | 
 |         Y: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000 | 
 |           scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000 | 
 |           rawAxis=1, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0 | 
 |         Z: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000 | 
 |           scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000 | 
 |           rawAxis=2, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0 | 
 |         RZ: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000 | 
 |           scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000 | 
 |           rawAxis=5, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0 | 
 |         HAT_X: min=-1.00000, max=1.00000, flat=0.00000, fuzz=0.00000 | 
 |           scale=1.00000, offset=0.00000, highScale=1.00000, highOffset=0.00000 | 
 |           rawAxis=16, rawMin=-1, rawMax=1, rawFlat=0, rawFuzz=0, rawResolution=0 | 
 |         HAT_Y: min=-1.00000, max=1.00000, flat=0.00000, fuzz=0.00000 | 
 |           scale=1.00000, offset=0.00000, highScale=1.00000, highOffset=0.00000 | 
 |           rawAxis=17, rawMin=-1, rawMax=1, rawFlat=0, rawFuzz=0, rawResolution=0 | 
 | </code></pre> | 
 | <p>At the end of the input reader dump there is some information about global configuration | 
 | parameters such as the mouse pointer speed.</p> | 
 | <pre><code>  Configuration: | 
 |     ExcludedDeviceNames: [] | 
 |     VirtualKeyQuietTime: 0.0ms | 
 |     PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000 | 
 |     WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000 | 
 |     PointerGesture: | 
 |       Enabled: true | 
 |       QuietInterval: 100.0ms | 
 |       DragMinSwitchSpeed: 50.0px/s | 
 |       TapInterval: 150.0ms | 
 |       TapDragInterval: 300.0ms | 
 |       TapSlop: 20.0px | 
 |       MultitouchSettleInterval: 100.0ms | 
 |       MultitouchMinDistance: 15.0px | 
 |       SwipeTransitionAngleCosine: 0.3 | 
 |       SwipeMaxWidthRatio: 0.2 | 
 |       MovementSpeedRatio: 0.8 | 
 |       ZoomSpeedRatio: 0.3 | 
 | </code></pre> | 
 | <h4 id="things-to-look-for_1">Things To Look For</h4> | 
 | <ol> | 
 | <li> | 
 | <p>All of the expected input devices are present.</p> | 
 | </li> | 
 | <li> | 
 | <p>Each input device has been configured appropriately.  Especially check the | 
 |     touch screen and joystick axes.</p> | 
 | </li> | 
 | </ol> | 
 | <h3 id="input-dispatcher-state">Input Dispatcher State</h3> | 
 | <p>The <code>InputDispatcher</code> is responsible for sending input events to applications. | 
 | Its state dump shows information about which window is being touched, the | 
 | state of the input queue, whether an ANR is in progress, and so on.</p> | 
 | <pre> | 
 | Input Dispatcher State: | 
 |   DispatchEnabled: 1 | 
 |   DispatchFrozen: 0 | 
 |   FocusedApplication: <null> | 
 |   FocusedWindow: name='Window{3fb06dc3 u0 StatusBar}' | 
 |   TouchStates: <no displays touched> | 
 |   Windows: | 
 |     0: name='Window{357bbbfe u0 SearchPanel}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820100, type=0x000007e8, layer=211000, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms | 
 |     1: name='Window{3b14c0ca u0 NavigationBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01840068, type=0x000007e3, layer=201000, frame=[0,1776][1080,1920], scale=1.000000, touchableRegion=[0,1776][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms | 
 |     2: name='Window{2c7e849c u0 com.vito.lux}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x0089031a, type=0x000007d6, layer=191000, frame=[-495,-147][1575,1923], scale=1.000000, touchableRegion=[-495,-147][1575,1923], inputFeatures=0x00000000, ownerPid=4697, ownerUid=10084, dispatchingTimeout=5000.000ms | 
 |     3: name='Window{31c9f22 u0 Heads Up}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820328, type=0x000007de, layer=161000, frame=[0,0][1794,750], scale=1.000000, touchableRegion=[0,0][1794,192], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms | 
 |     4: name='Window{3fb06dc3 u0 StatusBar}', displayId=0, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x81960040, type=0x000007d0, layer=151000, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000004, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms | 
 |     5: name='Window{278c1d65 u0 KeyguardScrim}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01110900, type=0x000007ed, layer=131000, frame=[0,0][1080,1776], scale=1.000000, touchableRegion=[0,0][1080,1776], inputFeatures=0x00000000, ownerPid=745, ownerUid=1000, dispatchingTimeout=5000.000ms | 
 |     6: name='Window{869f213 u0 com.android.systemui.ImageWallpaper}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00000318, type=0x000007dd, layer=21025, frame=[0,0][2328,1920], scale=1.000000, touchableRegion=[0,0][2328,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms | 
 |     7: name='Window{16ab6320 u0 InputMethod}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01800108, type=0x000007db, layer=21020, frame=[0,75][1080,1920], scale=1.000000, touchableRegion=[0,986][1080,1920], inputFeatures=0x00000000, ownerPid=8409, ownerUid=10056, dispatchingTimeout=5000.000ms | 
 |     8: name='Window{cf4ff0b u0 com.google.android.googlequicksearchbox/com.google.android.launcher.GEL}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81910120, type=0x00000001, layer=21015, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=14722, ownerUid=10022, dispatchingTimeout=5000.000ms | 
 |     9: name='Window{1a7be08a u0 com.android.systemui/com.android.systemui.recents.RecentsActivity EXITING}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81910120, type=0x00000001, layer=21010, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms | 
 |     10: name='Window{2280455f u0 com.google.android.gm/com.google.android.gm.ConversationListActivityGmail}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81810120, type=0x00000001, layer=21005, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=9897, ownerUid=10070, dispatchingTimeout=5000.000ms | 
 |     11: name='Window{657fee5 u0 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01810520, type=0x00000001, layer=21000, frame=[0,0][1080,1776], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=3189, ownerUid=10085, dispatchingTimeout=5000.000ms | 
 |   MonitoringChannels: | 
 |     0: 'WindowManager (server)' | 
 |   RecentQueue: length=10 | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (335.0, 1465.0)]), policyFlags=0x62000000, age=217264.0ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (335.0, 1465.0)]), policyFlags=0x62000000, age=217255.7ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=0, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (330.0, 1283.0)]), policyFlags=0x62000000, age=216805.0ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (330.0, 1287.0)]), policyFlags=0x62000000, age=216788.3ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (331.0, 1297.0)]), policyFlags=0x62000000, age=216780.0ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (332.0, 1316.0)]), policyFlags=0x62000000, age=216771.6ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (333.0, 1340.0)]), policyFlags=0x62000000, age=216763.3ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (333.0, 1362.0)]), policyFlags=0x62000000, age=216755.0ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (332.0, 1384.0)]), policyFlags=0x62000000, age=216747.2ms | 
 |     MotionEvent(deviceId=4, source=0x00001002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (332.0, 1384.0)]), policyFlags=0x62000000, age=216738.9ms | 
 |   PendingEvent: <none> | 
 |   InboundQueue: <empty> | 
 |   ReplacedKeys: <empty> | 
 |   Connections: | 
 |     0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     1: channelName='278c1d65 KeyguardScrim (server)', windowName='Window{278c1d65 u0 KeyguardScrim}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     2: channelName='357bbbfe SearchPanel (server)', windowName='Window{357bbbfe u0 SearchPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     3: channelName='869f213 com.android.systemui.ImageWallpaper (server)', windowName='Window{869f213 u0 com.android.systemui.ImageWallpaper}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     4: channelName='3fb06dc3 StatusBar (server)', windowName='Window{3fb06dc3 u0 StatusBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     5: channelName='2c7e849c  (server)', windowName='Window{2c7e849c u0 com.vito.lux}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     6: channelName='cf4ff0b com.google.android.googlequicksearchbox/com.google.android.launcher.GEL (server)', windowName='Window{cf4ff0b  | 
 | u0 com.google.android.googlequicksearchbox/com.google.android.launcher.GEL}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     7: channelName='2280455f com.google.android.gm/com.google.android.gm.ConversationListActivityGmail (server)', windowName='Window{2280455f u0 com.google.android.gm/com.google.android.gm.ConversationListActivityGmail}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     8: channelName='1a7be08a com.android.systemui/com.android.systemui.recents.RecentsActivity (server)', windowName='Window{1a7be08a u0 com.android.systemui/com.android.systemui.recents.RecentsActivity EXITING}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     9: channelName='3b14c0ca NavigationBar (server)', windowName='Window{3b14c0ca u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     10: channelName='16ab6320 InputMethod (server)', windowName='Window{16ab6320 u0 InputMethod}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     11: channelName='657fee5 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell (server)', windowName='Window{657fee5 u0 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     12: channelName='31c9f22 Heads Up (server)', windowName='Window{31c9f22 u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |   AppSwitch: not pending | 
 |     7: channelName='2280455f com.google.android.gm/com.google.android.gm.ConversationListActivityGmail (server)', windowName='Window{2280455f u0 com.google.android.gm/com.google.android.gm.ConversationListActivityGmail}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     8: channelName='1a7be08a com.android.systemui/com.android.systemui.recents.RecentsActivity (server)', windowName='Window{1a7be08a u0 com.android.systemui/com.android.systemui.recents.RecentsActivity EXITING}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     9: channelName='3b14c0ca NavigationBar (server)', windowName='Window{3b14c0ca u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     10: channelName='16ab6320 InputMethod (server)', windowName='Window{16ab6320 u0 InputMethod}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     11: channelName='657fee5 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell (server)', windowName='Window{657fee5 u0 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |     12: channelName='31c9f22 Heads Up (server)', windowName='Window{31c9f22 u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false | 
 |       OutboundQueue: <empty> | 
 |       WaitQueue: <empty> | 
 |   AppSwitch: not pending | 
 |   Configuration: | 
 |     KeyRepeatDelay: 50.0ms | 
 |     KeyRepeatTimeout: 500.0ms | 
 | </pre> | 
 | <h4 id="things-to-look-for_2">Things To Look For</h4> | 
 | <ol> | 
 |   <li> In general, all input events are being processed as expected.  </li> | 
 |   <li> If you touch the touch screen and run dumpsys at the same time, | 
 |   then the <code>TouchStates</code> line should show the window that | 
 |   you are touching.  </li> | 
 | </ol> | 
 |  |