Dualshock 5 和 Android
Dualshock 5 and Android
我正在尝试为我的应用实现对游戏手柄的支持,但事实证明 Dualshock 5 给了我非常奇怪的值。我还使用外部应用程序 (Gamepad Tester) 对其进行了测试。
我试过同时连接 USB-c 和蓝牙,但这两种连接类型都同样糟糕。
例如,按钮映射到这些键码:
- 十字 -> Button_B,键码 95
- 圆形 -> 未知,键码 0
- 三角形 -> Button_Y,键码 100(正确!)
- 正方形 -> Button_A,kecyode 96
左摇杆工作正常(映射到AXIS_Y和AXIS_X,取值范围-1到1),但右摇杆映射到LTRIGGER/BRAKE和RTRIGGER/GAS .它们的取值范围为 0 - 0.9
这是怎么回事?无论应用程序或连接类型如何,我都会得到所有这些错误的值。我正在使用 Android 12(我猜是测试版?)。我以为 android 已经支持 DS5?谁能确认他们是否从他们的 DS5 控制器获得了同样奇怪的值?
通过 hid-playstation kernel module, which was added to the android12-5.4 and android12-5.10 branches. Previous versions of Android used the hid-input (default) mapping which doesn't follow the Linux Gamepad Specification 支持 DualSense。 hid-playstation 内核模块更新 DualSense 映射以更接近规范。它还增加了对电池状态、加速度计、陀螺仪、灯条 LED、触觉和触摸板的支持。
在 Android 上,有一些键盘布局文件允许系统更改解释来自特定设备的输入的方式。对于游戏手柄,键盘布局文件用于重新映射输入以遵循 Android standard mapping。将 DualSense 与 hid-playstation 一起使用需要在 Android 12.
中添加的新键盘布局文件
我猜你有新的键盘布局文件,但由于某种原因没有使用 hid-playstation 驱动程序。这与您观察到的 Circle 未映射并且右拇指杆映射到触发轴的观察结果一致。 (使用隐藏输入映射,Circle 发出键码 0x132,它不包含在新的键盘布局文件中。右摇杆发出轴 0x02 和 0x05,它们被转换为 LTRIGGER 和 RTRIGGER。)
DualSense 应该在 Android12 中工作,所以这可能是一个错误。您能否编辑您的问题以提供有关您的 Android 设备的更多信息?
我正在尝试为我的应用实现对游戏手柄的支持,但事实证明 Dualshock 5 给了我非常奇怪的值。我还使用外部应用程序 (Gamepad Tester) 对其进行了测试。
我试过同时连接 USB-c 和蓝牙,但这两种连接类型都同样糟糕。
例如,按钮映射到这些键码:
- 十字 -> Button_B,键码 95
- 圆形 -> 未知,键码 0
- 三角形 -> Button_Y,键码 100(正确!)
- 正方形 -> Button_A,kecyode 96
左摇杆工作正常(映射到AXIS_Y和AXIS_X,取值范围-1到1),但右摇杆映射到LTRIGGER/BRAKE和RTRIGGER/GAS .它们的取值范围为 0 - 0.9
这是怎么回事?无论应用程序或连接类型如何,我都会得到所有这些错误的值。我正在使用 Android 12(我猜是测试版?)。我以为 android 已经支持 DS5?谁能确认他们是否从他们的 DS5 控制器获得了同样奇怪的值?
通过 hid-playstation kernel module, which was added to the android12-5.4 and android12-5.10 branches. Previous versions of Android used the hid-input (default) mapping which doesn't follow the Linux Gamepad Specification 支持 DualSense。 hid-playstation 内核模块更新 DualSense 映射以更接近规范。它还增加了对电池状态、加速度计、陀螺仪、灯条 LED、触觉和触摸板的支持。
在 Android 上,有一些键盘布局文件允许系统更改解释来自特定设备的输入的方式。对于游戏手柄,键盘布局文件用于重新映射输入以遵循 Android standard mapping。将 DualSense 与 hid-playstation 一起使用需要在 Android 12.
中添加的新键盘布局文件我猜你有新的键盘布局文件,但由于某种原因没有使用 hid-playstation 驱动程序。这与您观察到的 Circle 未映射并且右拇指杆映射到触发轴的观察结果一致。 (使用隐藏输入映射,Circle 发出键码 0x132,它不包含在新的键盘布局文件中。右摇杆发出轴 0x02 和 0x05,它们被转换为 LTRIGGER 和 RTRIGGER。)
DualSense 应该在 Android12 中工作,所以这可能是一个错误。您能否编辑您的问题以提供有关您的 Android 设备的更多信息?