Help Center & FAQ

Understand how the Bluetooth protocol manages HID connections and how to solve common pairing issues.

1. Android Compatibility and Bluetooth Version

Gamepad Touch requires Android 9.0 (API 28) or higher because it uses the native BluetoothHidDevice API to emulate a physical gamepad directly in hardware (requiring no software on your PC). The connection works with any Bluetooth version (4.0+), but using Bluetooth 5.0 or newer (on both the mobile device and the computer's receiver) is highly recommended for the lowest possible latency and maximum stability against radio interference.

2. The SDP (Service Discovery Protocol) Cache Problem

If you pair your phone with the PC before opening the Gamepad application for the first time, the computer caches the phone as a phone only. The OS stores this configuration (SDP Cache). When you launch the app and attempt to connect, the PC ignores the controller requests.

The Golden Rule (How to Fix)

  1. 1
    Forget the device on your Computer: Go to your PC's Bluetooth settings and select 'Remove Device' or 'Forget' for your phone.
  2. 2
    Open the App on your Phone: Start Gamepad Touch on your phone. This forces Android to register and expose the HID Gamepad service.
  3. 3
    Pair Again: Connect your phone to the computer again. With the app active on your screen, search for Bluetooth devices on the PC and pair. The PC will read the updated services and identify it as an input gamepad.

Extra Settings on Linux (BlueZ)

On Linux, the Bluetooth daemon can reject incoming connections for security reasons. If the connection fails:

  • Try initiating the connection from the computer (PC connecting to the phone) while keeping the app open on the phone.
  • Or declare the phone as trusted by running the command below in the terminal:
# Acesse o utilitário bluetoothctl
bluetoothctl
# Confie no dispositivo (substitua pelo endereço MAC do celular)
trust [ENDEREÇO_MAC_DO_CELULAR]

App Connection Timeout

To prevent Bluetooth state lockups, the app implements a 6-second timeout. If the connection remains in 'Connecting...' for more than 6 seconds, the app cancels the request and shows an educational prompt.