0

从视图(焦点)中的应用程序读取 USB 游戏手柄事件(按钮按下等)在 Android 上可能不是问题。问题是我需要来自持久应用程序/服务/等的这些事件。这在视图中是不必要的(例如前台服务)。例如,当我按下游戏手柄上的某个按钮时,总是应该启动一个预定义的应用程序,而不管视图中的应用程序是什么。也就是说,必须接收和处理游戏手柄事件的应用程序或进程应该是持久的,特别是它永远不会被杀死,即使失去焦点也应该继续处理事件。

据我了解,使用物理键盘既不简单也不优雅,因为我必须使用可访问性服务(毫无疑问)或编写自己的输入法(复杂且有其缺点)。也许游戏手柄有更好的解决方法?请注意,我们所说的设备实际上是一个基于 Trinket 的 USB 通用“按钮板”,它可以轻松编程为任何 HID 设备,如游戏手柄、键盘、鼠标等。即使如此,更喜欢游戏手柄而不是键盘以避免干扰系统的本机软键盘(但如果我有键盘解决方案也会很高兴)。

Delphi Firemonkey 解决方案将是最好的,但我当然准备好在必要时使用 C++、Python、Java 等。它必须在 Android 7.1 或更高版本上运行(至少 Oreo 是强制性的)。

更新 为了更清楚一点,让我展示一下我真正想做的事情。实际上,Android 设备是一个只能触摸的车载主机。我制作了一个带有按钮的活动框架,这些按钮可以像游戏手柄或物理键盘一样,目的是在主机上启动(或切换到)媒体播放器、导航、电话、收音机等(因为仅触摸设备会分散注意力因此,驾驶员在驾驶时并不真正安全)。当然,无论当前查看哪个应用程序,所有按钮都应该每次都能正常工作。

4

0 回答 0