1

我刚刚开始接触 android 软件开发,并将设计辅助硬件来连接 android 设备。取决于固件,设备上可以使用的 USB 模式似乎存在一些限制。基于 developer.android.com 网站上的 USB 文档。USB 主机模式仅在固件版本 3.1 及更高版本上受支持。但是,三星 Galaxy 2 似乎至少在本机上支持 OTG(主机模式),如以下 youtube 视频所示:SGS2 OTG 演示。将手机作为主机至关重要,以便为我的外部连接硬件提供少量电力。

  1. 谁能验证android手机设备上是否有任何API访问USB主机模式?我质疑上面的 android dev 引用的原因是 SGS2 手机上明显展示了主机模式功能。

  2. 如果我无法访问任何 USB 主机 API 功能,有没有办法开发可以与手机通信的 USB 外围设备硬件?看来我可以设计使用 MSD 类的硬件,就像上面列出的演示中原生支持的那样?

  3. 如果目前没有 API USB 主机访问,未来是否有计划将其添加到手机硬件中?

4

2 回答 2

1

相当广泛的设备硬件支持 USB 主机(有时仅部分支持,不提供电源),但仅支持替代固件或供应商特定扩展 - 直到您获得 API 版本,它是 android 的官方部分。

您看到的许多视频和网页都是人们炫耀他们的自定义固件修改 - 这可能是一条路径,但它会将您的市场限制为愿意修改的用户、您认证兼容的设备列表或您的特殊 android 设备与您的配件捆绑销售。

于 2011-08-03T17:40:09.137 回答
0

可以为 SGS2 开发可与自定义 USB 设备通信的应用程序。

首先,SGS2 的内核实现了一个白名单,它只允许某些类型的设备(HID、大容量存储、打印机、PTP)连接,这意味着任何供应商特定的自定义 USB 硬件都将不被允许。如果您愿意构建自己的内核,或者可以说服内核开发人员进行修改,可以适当修改白名单。

其次,Android SDK 中的 USB 主机类仅在 3.1 中可用,但 SGS2 运行 2.3.x,但它允许您针对适当的 API 级别进行构建,并且仍然以 SGS2 为目标。

我已经在我的博客上写过关于如何修改内核并开始开发应用程序的文章。

于 2011-09-02T15:01:30.690 回答