2010-08-08 64 views
4

我们制作了一个可充当USB主机或从机的设备,并处理它接收到的数据。我想使用Android手机通过USB将数据发送给它。Android:与充当主机的USB设备通信

我的研究使我得出结论:我们不能在USB主机模式下使用Android设备,而无需修改硬件或操作系统。这样做不是一种选择,因为这将成为商业部署的设备。

但是,我找不到有关将Android手机用作从属设备的任何信息。这在技术上已经可以实现,因为它可以以类似的配置连接到PC。我们可以通过应用程序来做同样的事吗?如果是这样,任何有关如何实现这一目标的信息将不胜感激。我可以完全访问我们设备的嵌入式系统,因此在那里定制代码应该不成问题。

+1

看看http://stackoverflow.com/questions/3803871/android-apps-communicating-with-a-device-plugged-in-the-usb-port - 新的答案是ADK http:/ /developer.android.com/guide/topics/usb/adk.html(在您提问后发布) – 2011-08-05 15:32:55

回答

7

这在技术上已经可行了 ,因为它可以连接到类似配置的 PC。

仅适用于烘焙到固件中的东西。您的SDK应用程序无法发明新的Linux设备驱动程序,也无法访问adb连接的Android设备端。

我们可以通过应用程序做同样的事吗?

既然你还没有说你想要做什么,这是不可能的,以确定的方式回答。例如,假设“可充当USB主机或从机并处理其接收到的数据的设备”想要截断Android设备的屏幕截图。这通过adb显然是可能的,因为adb有一个内置的协议。您需要做的就是让您的设备通过adb协议连接到Android设备并请求屏幕截图,与DDMS或hierarchyviewer没有什么不同。所以,我会从不同的角度来看问题:如果你可以通过DDMS来完成它,你可以通过你的自定义设备来完成。如果你可以通过adb shell命令完成它,你可以通过你的自定义设备来完成。但是,如果通过现有接口无法实现目标,由于无法通过USB发明新的接口,您将陷入困境。

可以想象,您可以将您的自定义设备插入蓝牙或WiFi加密狗,然后使用Android上的通信。

+0

感谢您的回复!该设备是专用打印机。蓝牙/ WiFi支持计划中,但目前的版本不支持。 但是你对adb和DDMS的评价很有意思。我会更加注意这一点,非常感谢。 – Vaayu 2010-08-08 13:36:23

+0

@CommonsWare:你可以plz回答我的Qn我发布在这里http://stackoverflow.com/questions/12841332/how-to-detect-usb-device-in-android – Prasad 2012-10-11 14:17:47