我想用我的应用程序把我的电脑变成一个安卓配件。因此,这将不是专门的硬件,而是将手机切换到附件模式的 PC,从而在手机上启动与主机硬件相关联的一些 Java 应用程序并创建通信通道。
我找到了使用 libusb 在 Linux 上执行此操作的示例代码(以及一些 Java Android 应用程序)。它通过使用标准 VID 和 PID “打开”手机来工作。然后它发送一个打开附件模式的命令,以及模型、版本等元数据。
如果手机支持附件模式,它将断开连接并使用不同的 PID 重新枚举。示例代码然后检查它是否这样做并打开新设备。
但是,我试图让它在 Windows 上运行。我找到了一些 USB 库,例如LibUsbDotNet,但它们似乎都需要使用 WinUSB/libusb 驱动程序的设备。我使用 LibUsbDotNet 中的工具为我的手机生成 libusb 驱动程序,将其安装在旧的通用可移动驱动器上。但这意味着我现在无法将手机作为可移动驱动器访问,因此这不是解决方案。
有没有一种方法(最好是库)可以根据 VID 和 PID 打开任何连接的 USB 设备,然后向它发送一些原始命令?
之后,设备将使用不同的 PID 重新枚举,我可以使用它来创建自己的 WinUSB 驱动程序,所以这不是问题。我只需要通过/围绕默认驱动程序注入一些命令来打开附件模式。
(我更喜欢 .NET 解决方案,但任何 Windows 都可以,我可以编写自己的互操作包装器)