ゲームパッドを接続できる Android デバイスを持っています (これは完全に標準の XBox 360 コントローラーですが、他の種類もサポートする必要があります)。ゲームパッドは、いくつかのアナログ軸といくつかのボタンを備えた InputDevice として表示されます。
Android にクエリを実行して、ゲームパッドがサポートするボタンを確認できるようにする必要があります。誰もこれを行う方法を知っていますか?
ioctl/dev/input/event...
を使用してボタンを開いて照会するコマンドライン アプリを作成すると、サポートされているボタンの適切なリストがカーネルから取得されるため、システムがこの情報を持っていることはわかっています。EVIOCGBIT
しかし、入力デバイスに直接アクセスする権限がないため、Android アプリケーションからこれを行うことはできません。
InputDevice の KeyCharacterMap オブジェクトを取得してクエリを実行できるはずです。しかし、Android は、ゲームパッドがサポートするものと実際に一致するキーマップを作成するのではなく、デフォルトの QWERTY キーボード キーマップをゲームパッドにアタッチしたようです。これは、ゲームパッドに Q キーがあり、それがないこと、および BUTTON_X キーがないこと、およびキー イベントを受け取っていることを喜んで教えてくれます。だから、それは役に立ちません。
これを行う方法はありますか?