Interfaz de usuario de control con gamepad USB

¿Cómo puedo controlar la interfaz de usuario de Android (especialmente el botón Atrás e Inicio) en Android 6 con un gamepad USB?

Tengo el Android TV Box Docooler R39 (que ejecuta 6.0) y un gamepad USB genérico barato con el ID de USB 0079:0006 ("Controlador Dragonrise"). Desafortunadamente, cualquier botón (excepto el dpad y el joystick izquierdo, que puedo usar para mover el foco de selección en la mayoría de las aplicaciones y la interfaz de usuario del sistema) activa una acción de "selección", por lo que todavía necesito un teclado USB para tener control total para "volver". , "casa" y "aplicaciones recientes" funcionando.

En otras plataformas, por ejemplo, Kodi en Linux o LibreELEC en Raspberry Pi, puedo asignar todos los botones del mismo controlador. Sin embargo, en Kodi para Android, la aplicación solo reconoce el dpad. Mismo problema en aplicaciones de emulador como Mupen64plus para Android. En mi Galaxy S5 con Android 7.1 tengo el mismo problema con ese controlador.

Sé que Android introdujo el soporte oficial de Gamepad en 5.0, pero no parece admitir la navegación completa de la interfaz de usuario con mi controlador y, en cambio, intercepta todas las acciones del gamepad.

Tanto mi teléfono como la caja de TV están rooteados, si eso ayuda a cambiar la asignación.

Respuestas (1)

Uso un gamepad USB Xbox 360 y asigna los botones Xbox y Atrás a Inicio y Atrás de Android. ¡Ojalá no fuera así, es muy molesto que Chrome retroceda cuando intentas jugar un juego! Dicho esto, parece que funcionaría perfectamente para su caso.

Las asignaciones de gamepad->keycode en Android se configuran en archivos .kl. Parece que Android no tiene una asignación para DragonRise 0079:0006, por lo que tal vez solo necesite crear una. Aquí está el archivo para el USB de Xbox 360:

https://android.googlesource.com/platform/frameworks/base/+/master/data/keyboards/Vendor_045e_Product_028e.kl

Entonces, ¿puedo poner mi .kl personalizado en /system/usr/keylayouts y reiniciar o tengo que reconstruir Android?
¡Acabo de probarlo y funciona!