You can enhance the user experience in your game by letting
players use game controllers. The Android framework
provides APIs for detecting and processing user input from game
controllers.


This guide shows how to make your game work consistently with game
controllers across different Android API levels (API level 9 and up) and
how to enhance the gaming experience for players by supporting multiple
controllers simultaneously in your app.

**Note:**
If you are developing games or writing a C++ app, use the
[Game Controller Library](https://developer.android.com/games/sdk/game-controller)
that is part of the
[Android Game Development Kit (AGDK)](https://developer.android.com/games/agdk) instead.

## Lessons


**[Handle controller actions](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-input)**
:
    Learn how to handle user input from common input elements on game
    controllers, including directional pad (D-pad) buttons, gamepad buttons,
    and joysticks.


**[Support controllers across Android versions](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/compatibility)**
:
    Learn how to make game controllers behave the same across devices
    running different versions of Android.


**[Support multiple game controllers](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/multiple-controllers)**
:
    Learn how to detect and use multiple game controllers that are
    simultaneously connected.


**[Additional game controller features](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-features)**
:
    Learn how to use additional controller features.