Android:与作为主机的USB设备通信

4
我们已经研制出一款设备,可作为USB主机或从机处理接收到的数据。我希望通过USB使用安卓手机向其发送数据。
我的研究结论是,如果不修改硬件或操作系统,我们无法在Android设备上使用USB主机模式。由于这将是一个商业部署设备,因此这样做并不是一个选择。
然而,我找不到有关使用安卓手机作为从机的任何信息。这已经在技术上是可能的,因为它可以以类似的配置连接到PC。我们是否可以通过应用程序实现相同的功能?如果可以,那么如何实现这一点的任何信息都将不胜感激。我可以完全访问我们设备的嵌入式系统,所以定制代码应该不是问题。

1
请查看https://dev59.com/UG865IYBdhLWcg3wduWH - 新答案是ADK http://developer.android.com/guide/topics/usb/adk.html(在您提出问题后发布)。 - James Moore
1个回答

7
这已经在技术上是可行的,因为它可以连接到PC以类似的配置。但只适用于固件中已嵌入的内容。您的SDK应用程序无法发明新的Linux设备驱动程序,也无法访问adb连接的Android设备侧。如果你没有说清楚你想做什么,那么这是不可能有一个确定的答案的。例如,"作为USB主机或从机并处理其接收到的数据的设备"想要从Android设备获取屏幕截图,这是极其可能的,因为adb内置了此功能的协议。您需要做的就是让您的设备通过adb协议连接到Android设备并请求屏幕截图,与DDMS或hierarchyviewer没有区别。因此,我会从不同的角度来看待这个问题:如果您可以通过DDMS完成它,那么您可以通过自定义设备完成它。如果您可以通过adb shell命令完成您的目标,那么您也可以通过自定义设备完成它。如果您无法通过现有接口实现目标,则由于没有办法在USB上发明新接口,您将会受阻。可以想象,您可以将自定义设备插入到蓝牙或WiFi dongle中,然后在Android上使用它们进行通信。

谢谢回复!该设备是专用打印机。计划支持蓝牙/ WiFi,但不在当前版本中。但是,您关于adb和DDMS的说法很有趣。我会更深入地研究这个问题,非常感谢。 - Vaayu
@CommonsWare:您能否回答我在这里发布的问题https://dev59.com/C2nWa4cB1Zd3GeqP03q2? - Prasad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接