使用 Objective-C 进行 USB 编程

Posted

技术标签:

【中文标题】使用 Objective-C 进行 USB 编程【英文标题】:USB Programming with Objective-C 【发布时间】:2010-12-13 07:34:41 【问题描述】:

谁能告诉我如何使用 Objective-C 将 USB 设备编程为 iPhone 应用程序?

我想通过 iPhone 访问 USB 设备的内容

【问题讨论】:

你可能无法在 Objective-C 中做到这一点。据我所知,iPhone 没有 USB 主机控制器,如果你想将 USB 设备连接到你的 iPhone,你将需要它.. 如果你想让你的设备既像主机又像从机,它必须在旅途中支持 USB。在主机模式下,您可能不需要编写任何代码(直到操作系统附带设备驱动程序)。更有趣的是从属模式,因为您可以编写“虚拟硬件”,如鼠标、调制解调器等。为此,Linux 有 USB Gadget API。 【参考方案1】:

你不能。如果您使用 ExternalAccessory 框架加入 Made for iPhone 计划,则可以为 iPhone 构建基于 USB 的配件,但您无法访问任意 USB 设备。 SDK 让您可以访问在 USB 上使用自定义接口的设备,您可以在注册该程序并执行更多 NDA 后获得其确切详细信息。

【讨论】:

老兄...我想做一个应用程序,当连接到 USB 电缆时,它会在 iPhone 屏幕上加载所有详细信息... 考虑到 iPhone 的 USB 端口正在推送大量数据,我只想在屏幕上显示这些数据,因此,iPhone 屏幕将像 MATRIX 的终端 - 电影 是的,我第一次明白你在问什么,你不能这样做。 iPhone 安全架构不允许应用程序直接访问 USB 端口。如果您确实有想要构建的产品,您可以加入 Made for iPhone 计划(如上所述),但您取决于具体细节,您的 USB 设备将需要新固件或重新设计。如果你只是想用 USB 设备到处乱逛,那你就不走运了。 重申你正在尝试做的事情不会改变答案。除非操作系统中存在安全漏洞或越狱手机,否则您无法做到这一点,如果您这样做,您的应用将不会被应用商店批准。 @Cœur 看起来他们更新了它以不按名称引用 redpark:“我们建议您使用第三方爱好者解决方案,它允许您将 ios 设备连接到串行设备并编写 iOS 应用程序与这些串行设备通信。” (来自这里:mfi.apple.com/MFiWeb/getFAQ.action#2-2)

以上是关于使用 Objective-C 进行 USB 编程的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 USB 上的示例程序对我的 atmel 开发板进行编程

USB 编程

Swift 4 和 Objective-C 混合编程 快速起步

objective-c高级编程 笔记

Objective-C和C的区别

IOS/Objective-C:确定以编程方式创建的 tableview 中 imageView 的大小