Interaction Methods
  • 19 Dec 2023
  • 1 Minute to read
  • Contributors
  • Dark

Interaction Methods

  • Dark

Article summary

The M400C features interaction methods which differ significantly from traditional touchscreen Android devices, and it is particularly important to keep these considerations in mind when designing the User Interface of an application intended to run on this device.

Existing applications which heavily leverage touchscreen interactions do not necessarily translate well to this device. This is due to touchscreen UI’s leveraging taps for input based on specific screen coordinates, which may not be possible with the available interaction methods depending on your use case.

Navigation Buttons

The three navigation buttons on the device include both short and long-press functionality.

The buttons generate KeyEvents which can be intercepted and handled explicitly in your application, or can be left to the system to handle. Reference Android KeyEvent documentation for details.

Short presses on the buttons will perform the following functions:

  • Foremost Button – Move focus to the right within a UI or move down if no focusable objects are available to the right. Returns the KEYCODE_DPAD_RIGHT KeyEvent.

  • Middle Button – Move focus to the left within a UI or move up if no focusable objects are available to the left. Returns the KEYCODE_DPAD_LEFT KeyEvent.

  • Rearmost Button – Will select the current UI element which has focus. Returns the KEYCODE_DPAD_CENTER KeyEvent.

Long presses on the buttons will perform the following functions:

  • Foremost Button – Brings up a context menu for the current area of the UI, allowing users to access additional functions without crowding the UI. (KEYCODE_MENU)

  • Middle Button – Returns to the Home screen. Returns KEYCODE_HOME.

  • Rearmost Button – Moves back one step in the UI. Returns KEYCODE_BACK.


The M400C features a two-axis touchpad to that can detect a wide variety of user gestures.

The touchpad is implemented as a trackball device, and methods such as dispatchTrackballEvent() and onTrackballEvent() can be used to capture and process the raw touchpad events.

As a fallback, if you do not handle the trackball events in your application, there are predefined single, double, and triple-finger gestures that generate key presses. These keys can be captured with standard Android methods. Refer Android KeyEvent documentation for details.

One finger

  • Swipe back to front: KEYCODE_DPAD_RIGHT

  • Swipe front to back: KEYCODE_DPAD_LEFT

  • Swipe bottom to top: KEYCODE_DPAD_UP

  • Swipe top to bottom: KEYCODE_DPAD_DOWN



Two fingers

  • Swipe back to front: KEYCODE_FORWARD_DEL

  • Swipe front to back: KEYCODE_DEL

  • Swipe bottom to top: KEYCODE_VOLUME_UP

  • Swipe top to bottom: KEYCODE_VOLUME_DOWN

  • Swipe top to bottom and hold: KEYCODE_VOLUME_MUTE



Three fingers


  • Hold: KEY_F12

Was this article helpful?

What's Next