我刚开始进入android软件开发,并将设计配件硬件来连接Android设备。似乎在依赖于固件的设备上可以使用哪些USB模式存在一些限制。基于developer.android.com网站上的USB文档。仅在固件版本3.1及更高版本上支持USB主机模式。然而,看起来三星Galaxy 2支持OTG(主机模式),至少是原生的,如本YouTube视频所示:SGS2 OTG demo。手机必须是主机才能为外部连接的硬件提供少量电源。
任何人都可以验证Android手机设备上是否有USB访问USB主机模式?我对上面的android dev引用提出质疑的原因是SGS2手机上显示了主机模式功能。
如果我无法访问任何USB主机API功能,有没有办法开发可以与手机通信的USB外围设备硬件?似乎我可以设计使用MSD类的硬件,如上面列出的演示中似乎本身支持的那样?
如果目前没有API USB主机访问,将来是否有计划将其添加到手机硬件?
答案 0 :(得分:1)
各种各样的设备硬件支持usb主机(有时仅部分,无需供电),但仅支持其他固件或供应商特定的扩展 - 直到你获得它是android官方部分的API版本。
您看到的许多视频和网页都是人们展示他们的自定义固件修改 - 这可能是一条路径,但是限制您的市场给愿意修改的用户,您认证兼容的设备列表或特殊与您的附件捆绑销售的Android设备。
答案 1 :(得分:0)
可以为SGS2开发可与自定义USB设备通信的应用程序。
首先,SGS2的内核实现了白名单,只允许某些类型的设备连接(HID,大容量存储,打印机,PTP),这意味着不允许任何特定供应商的自定义USB硬件。如果您愿意构建自己的内核,或者可以说服内核开发人员进行修改,则可以对白名单进行适当修改。
其次,Android SDK中的USB主机类仅在3.1中可用,但SGS2运行2.3.x,但它可以让您构建适当的API级别并仍然以SGS2为目标。
我写过关于如何修改内核并开始在blog上开发应用程序。