Tengo un dispositivo Android en el que se puede conectar un gamepad (es un controlador XBox 360 totalmente estándar, pero también necesito apoyar otras variedades). El gamepad se muestra como un dispositivo de entrada con algunos ejes analógicos y algunos botones.Android: enumerando los botones en un gamepad
Necesito poder consultar Android para saber qué botones admite el gamepad. ¿Alguien sabe como hacer esto?
Sé que el sistema tiene esta información, porque si escribo una aplicación de línea de comandos que abre /dev/input/event...
y consulta los botones usando EVIOCGBIT
ioctl, obtengo una buena lista de botones compatibles del kernel. Pero no puedo hacer esto desde una aplicación de Android porque no tengo permiso para acceder a los dispositivos de entrada directamente.
Parece que debería ser posible obtener el objeto KeyCharacterMap de InputDevice y consultarlo; pero parece que Android ha unido el mapa de teclas del teclado QWERTY predeterminado al gamepad, en lugar de construir uno que realmente coincida con lo que el gamepad admite. Esto felizmente me dirá que el gamepad tiene una tecla Q, que no tiene, y que no tiene una tecla BUTTON_X, lo que hace, y para la que estoy recibiendo eventos clave. Entonces eso no está ayudando.
¿Hay alguna manera de hacer esto?
Debe haber documentación de su proveedor al respecto. ¿Qué dispositivo estás usando? –
Cualquiera --- esto tiene que ser una solución portátil. –