Ich habe ein Android-Gerät, in dem ein Gamepad angeschlossen werden kann (es ist eine völlig standardmäßige XBox 360 Controller, aber ich muss auch andere Sorten unterstützen). Das Gamepad wird als InputDevice mit einigen analogen Achsen und einigen Buttons angezeigt.Android: Enumeration der Tasten auf einem Gamepad
Ich muss Android abfragen können, um herauszufinden, welche Tasten das Gamepad unterstützt. Weiß jemand, wie man das macht?
Ich weiß, dass das System diese Informationen hat, denn wenn ich eine Befehlszeilen-App schreibe, die /dev/input/event...
öffnet und fragt die Tasten EVIOCGBIT
ioctl, bekomme ich eine schöne Liste der unterstützten Tasten aus dem Kernel. Aber ich kann dies nicht von einer Android-Anwendung aus tun, weil ich nicht die Erlaubnis habe, direkt auf die Eingabegeräte zuzugreifen.
Es sieht so aus, als ob es möglich ist, das KeyCharacterMap-Objekt des InputDevice abzurufen und das abzufragen; aber es sieht so aus, als ob Android die standardmäßige QWERTY-Tastatur-Keymap an das Gamepad angehängt hat, anstatt eine zu konstruieren, die tatsächlich mit dem übereinstimmt, was das Gamepad unterstützt. Dies wird mir glücklicherweise sagen, dass das Gamepad eine Q-Taste hat, was es nicht tut, und dass es keine BUTTON_X-Taste hat, was es tut und für die ich Schlüsselereignisse erhalte. Das hilft also nicht.
Gibt es eine Möglichkeit, dies zu tun?
Es sollte Dokumentation von Ihrem Anbieter zu diesem Thema sein. Welches Gerät verwendest du? –
Any --- dies muss eine tragbare Lösung sein. –