Windows下基于软件的Android附件

Windows下基于软件的Android附件,android,usb,driver,libusb,winusb,Android,Usb,Driver,Libusb,Winusb,我想用我的应用程序把我的电脑变成一个安卓附件。因此,这将不是一个专门的硬件,而是一台PC,它将把手机切换到附件模式,从而在手机上启动一些与主机硬件相关的Java应用程序,并创建一个通信通道 我发现了一个(加上一些Java Android应用程序)可以在Linux上使用libusb实现这一点。它的工作原理是使用标准VID和PID“打开”手机。然后它发送一个消息,以及模型、版本等元数据 如果手机支持附件模式,它将断开连接并使用不同的PID重新启动。然后,示例代码检查它是否执行了,并打开新设备 但是,

我想用我的应用程序把我的电脑变成一个安卓附件。因此,这将不是一个专门的硬件,而是一台PC,它将把手机切换到附件模式,从而在手机上启动一些与主机硬件相关的Java应用程序,并创建一个通信通道

我发现了一个(加上一些Java Android应用程序)可以在Linux上使用libusb实现这一点。它的工作原理是使用标准VID和PID“打开”手机。然后它发送一个消息,以及模型、版本等元数据

如果手机支持附件模式,它将断开连接并使用不同的PID重新启动。然后,示例代码检查它是否执行了,并打开新设备

但是,我正在尝试让它在Windows上运行。我发现了一些USB库,比如,但它们似乎都需要使用WinUSB/libusb驱动程序的设备。我使用LibUsbDotNet中的一个工具为我的手机生成了一个libusb驱动程序,安装在旧的通用可移动驱动程序上。但这意味着我现在无法在需要时将手机作为可移动驱动器访问,因此这不是一个解决方案

是否有一种方法(最好是库)可以基于VID和PID打开任何连接的USB设备,然后向其发送一些原始命令?

之后,设备将使用不同的PID重新使用,我可以使用它创建自己的WinUSB驱动程序,因此这不是问题。我只需要通过默认驱动程序注入一些命令来打开附件模式


(我更喜欢.NET解决方案,但任何Windows都可以,我可以编写自己的互操作包装)

我也在寻找类似的解决方案。我尝试了Linux版本,使用libusb,有点小故障,能够与设备通信。 在windows上搜索解决方案时,我尝试了许多黑客。 若需要在ADK模式下与设备通信,我需要发送几个供应商命令,现在我需要在大容量存储模式下连接设备时执行此操作。这是不可能使用大容量存储驱动程序的。我试图获取连接的USB设备的节点句柄,以查看是否可以发送供应商命令,但在那里我只能文件获取描述符请求。所以我采用了一种丑陋的方法,用libusb-win32替换了大容量存储驱动程序,看看它是否也能做到这一点,是的,它确实有效,但根本不是一个好的解决方案


仍在搜索..

wifi呢?你不能用它来交流吗?不幸的是,不,在这种情况下不是。此外,即使我可以,USB也会更好——给手机充电,触发手机上的后端应用程序,汽车根据提供的序列号识别不同的电脑,在每种情况下都会触发不同的反应。问题是,是否值得你也可以使用蓝牙。理论上,您可以使用adb,它可以启动您需要的应用程序并通过usb工作。pull和push命令可用于传输数据我感谢您的帮助,但我上面发布的正是我想要和需要的。我想用BT、WiFi或adb的简单方式来做,但我做不到。我真的需要把设备进入usb附件模式,通过强制一些数据通过usb使其重新计数。忽略问题中的Android部分,这实际上是关于在Windows上使用非WinUSB驱动程序进行USB操作。Hi@lacop您是否获得了Android手机和windoes PCHi sachin之间USB通信的可行解决方案?您是否获得了USB通信的解决方案。