我正在尝试读取在 android 的双 USB 游戏板上按下的按钮。
我尝试了 android 的 USB 包中可用的所有方法,包括bulkTransfer、controlTransfer、requestWait。但它们在按下按钮时总是返回相同的东西。我什至无法获得设备的真实名称。
我安装了 USB\BT JoyCenter,它检测到按下的键并显示连接的游戏手柄的名称。我真的不知道如何阅读游戏手柄和 android 文档并没有完全涵盖如何做到这一点。
我正在尝试读取在 android 的双 USB 游戏板上按下的按钮。
我尝试了 android 的 USB 包中可用的所有方法,包括bulkTransfer、controlTransfer、requestWait。但它们在按下按钮时总是返回相同的东西。我什至无法获得设备的真实名称。
我安装了 USB\BT JoyCenter,它检测到按下的键并显示连接的游戏手柄的名称。我真的不知道如何阅读游戏手柄和 android 文档并没有完全涵盖如何做到这一点。
我发现问题出在哪里。实际上我直接打印出字节数组。我认为java打印字节内存位置而不是它的内容。我使用了一个字节到十六进制转换器,现在它工作正常。
您可能想要做的第一件事是将设备插入 linux 机器并输入 lsusb。您需要了解 USB 设备支持哪些 USB 类。在这里发布您的答案供其他人查看。
然后你需要确定Android是否真的直接支持这个类。如果是这样,那么事情应该相对容易(所以请阅读手册)。如果没有,您可能需要使用 libusb 或类似工具来进行实际的低级交互。这不是一条容易的路,但如果 libusb 支持 USB 类,你就可以到达那里。
一旦您知道您正在使用的课程,您可能会从标准文档中发现您需要“打开”某些东西,然后它才会开始发送您感兴趣的数据。