How to Test a Controller on Android (Free, No App)

📅 Sep 21, 2026 âœī¸ Admin 📁 Controller ⏱ 5 min read
Last updated: September 21, 2026
← Back to Blog
How to Test a Controller on Android (Free, No App)

Search the Play Store for a controller tester and you will find a long list of apps wanting camera permissions, storage access and location data to tell you whether your left stick works. None of that is necessary. Android's own Chrome browser can read a connected controller directly through the same web standard your desktop uses, with nothing to install and nothing to grant access to beyond the page you are already looking at.

Understanding why this works, and specifically the two separate layers involved, also explains most of the connection problems people run into, which a plain how-to skips past.

Two layers, not one

This is the part worth understanding before anything else, because it explains almost every failure mode you will encounter.

Android has native, operating-system-level support for game controllers built into the platform itself, independent of any browser or app. This is why a controller can navigate a phone's home screen or work inside many native Android apps with no special setup: the OS recognises it as a standard HID input device and maps its buttons to navigation and input events at the system level.

The browser Gamepad API is a separate layer sitting on top of that. It is a W3C web standard that Chrome, and other Chromium-based browsers, expose to web pages so that JavaScript running on a page can read detailed button and analog stick state directly, rather than the crude directional input the OS layer alone provides. Crucially, the browser can only see a controller that the OS layer has already recognised. If the OS does not detect the device as a valid HID controller, no browser API on top of it will either.

This explains a specific, common complaint people run into and rarely understand: a controller navigates your phone's menus and settings just fine, but a browser test page shows nothing. That means the OS layer is working correctly and the browser is either not receiving the input for a separate reason, or the site itself has an issue, rather than a connection problem. The opposite, where nothing works at all, not even basic navigation, points at the OS layer itself failing to recognise the device, which is a genuine connection or hardware problem rather than a browser issue.

Connecting it

Over Bluetooth, pair the controller the same way you would pair headphones: Settings, then Bluetooth, put the controller into pairing mode, and select it from the list. Once paired at the system level, it is available to any app or browser page that wants to read it.

Over USB, you need your phone to support USB On-The-Go, generally abbreviated OTG, which allows the phone to act as a host for other USB devices rather than only being a device itself. Most modern Android phones support this natively, but not universally, and a small number of budget models do not support USB host mode at all, in which case no cable or adapter will make wired connection work. A basic USB-C OTG adapter, inexpensive and widely available, is often all you need if your phone's own port does not directly accept the controller's cable.

The wake step people miss

Once connected, open a controller test page in Chrome and press any button on the controller before expecting to see anything. This is not an Android quirk specifically, it is how the Gamepad API works everywhere, on desktop as well as mobile: browsers do not populate a connected gamepad's data until they receive an actual input from it, as a privacy and security measure that prevents a webpage silently fingerprinting connected hardware without your interaction. If a page shows no controller detected, press a button before assuming anything is actually wrong.

What genuinely works well, and what to be honest about

Buttons, sticks and triggers read reliably through Android Chrome's implementation of the Gamepad API, and this is the part worth trusting for the actual diagnostic work: press every button and watch it register, sweep both sticks through their full range and watch the reported values, pull each trigger slowly and confirm a smooth climb with no dead spots.

Two areas are worth a more honest caveat than most guides give them. Vibration and haptic feedback support through the browser on Android is less consistent than on desktop, varying by specific phone, Chrome version and controller combination, so treat a lack of response on a vibration test run from a mobile browser as inconclusive rather than a confirmed fault, and where possible cross-check on a desktop browser before concluding the motors themselves are bad. Gyroscope data from the controller itself, as distinct from the phone's own built-in motion sensors, is also not consistently exposed through the mobile Gamepad API the way it is on desktop, so do not rely on a phone-based test to confirm or rule out a controller's own motion sensors.

Things specific to Android that interfere with a clean test

Game mode and performance booster overlays. Several phone manufacturers, Samsung's Game Booster among the most common, run background overlays during gaming that can intercept controller input before it reaches a browser tab. If a browser test page is not responding correctly to a controller that clearly works elsewhere on the phone, checking whether one of these modes is active is worth doing before assuming a hardware fault.

A controller's own companion app running in the background. Several third party controllers, GameSir and 8BitDo models in particular, ship a companion app for firmware updates and remapping. If that app is running and has claimed exclusive access to the controller, a browser tab may see nothing at all even though the OS-level connection is genuinely fine. Close the companion app before testing, the same principle as closing Steam Input or a remapping tool before testing a controller on PC.

Battery saving restrictions on the browser tab itself. Aggressive battery management on some Android skins can throttle or suspend background browser activity, which can interrupt a test if you switch away from the tab mid-test. Keep the test page in the foreground while you are actually running it.

Testing on the spot, practically

This matters beyond troubleshooting your own controller. A phone in your pocket with no app installed is often the only testing tool available during an in-person sale of a used controller, and being able to run a real diagnostic on the spot, rather than trusting a seller's description, is genuinely useful leverage. Our guide on what to test before buying a used controller covers the full checklist, and everything in it works from a phone using exactly the method described here.

Run a stick drift test, a button test and a trigger test the same way you would on a desktop, watching for the same patterns: a resting stick value near zero, buttons that register consistently rather than intermittently, and triggers that climb smoothly with no pauses partway through the pull. None of it requires anything beyond the browser already installed on the phone.

Frequently Asked Questions

Q: Do I need to install an app to test a controller on Android?
No. Chrome and other Chromium-based browsers on Android support the same Gamepad API used on desktop, which lets a web page read button and stick data directly with nothing installed and no permissions beyond the page itself.
Q: My controller works for navigating my phone but a browser test shows nothing. What's wrong?
This means Android's operating-system-level controller support is working correctly, and the issue is specific to the browser layer sitting on top of it. Press a button on the controller first, since browsers do not populate gamepad data until they receive actual input, and check whether a game mode overlay or the controller's own companion app is running in the background and claiming exclusive access.
Q: Can I connect a controller to Android over USB?
Yes, provided your phone supports USB On-The-Go, which most modern Android phones do but not universally. A basic USB-C OTG adapter is usually enough if the controller's own cable does not connect directly, though a small number of budget phones do not support USB host mode at all, in which case wired connection will not work regardless of the adapter.
Q: Does controller vibration work when testing on Android?
Sometimes, but less reliably than on desktop. Support varies by phone model, Chrome version and specific controller, so treat a lack of vibration response during a mobile test as inconclusive rather than confirmation of a fault, and cross-check on a desktop browser if possible before deciding the motors themselves are the problem.
Q: Why does my controller register on my phone but not respond to any button presses in the browser?
Most likely a background app or overlay has taken exclusive control of the device before the browser can read it. Close any companion app for the controller itself, and check whether a manufacturer game mode or performance booster is active, since both are common causes of a controller that connects but produces no response in a browser test.

Free Online Gamepad Tester

Test your controller for drift, deadzones, and input lag — no download required.

Launch Tester →