10

我正在为我的公司开发一个主要的产品版本。我们正在设计一种新设备,我们希望将其集成到 iOS 应用程序中。(仅供参考,我们最近被 Apple MFi 计划接受,所以我们已经过了那一步。)

我们希望创建一个硬件/软件生态系统,我们的用户可以在其中启动我们的 iPad 应用程序(是的,它特定于 iPad 而不是 iPhone 或 iPod Touch 设备)并且应用程序将自动发现并链接到任何我们开发的近距离硬件。

这意味着我需要在 iPad 和硬件中实现某种形式的设备连接过程。

有没有办法在 iOS 应用程序中编写自动连接到蓝牙设备的代码?

我知道具有此功能的 Core Bluetooth Framework,但是,它仅适用于新的 iPhone 4S。那不是一个选择。

我还研究了 External Accessory Framework,它可以用来连接外部设备,无论它们是通过 iPod 端口还是蓝牙连接。这是一个选项,但如果我的理解是正确的,我们的硬件必须已经与 iPad 配对,然后 iOS 软件才能连接到它。这不太可取,因为尽管我们的许多设备可能不在某个时间点附近,但我们的客户可能拥有 100 台他们可能希望通过我们的软件连接的设备。

我有哪些合理的选择或替代方案?最终目标是为我们的用户提供一种非常简单的方法,使他们能够在 iPad 上从我们的软件中连接到我们的设备。

注意:我绝不能越狱 iPad 或违反任何 Apple TOS 协议。

更新(2012 年 3 月 7 日)我今天看到“新 iPad”(正式名称)将支持蓝牙 4.0。我假设这意味着这个 iPad 设备将能够使用核心蓝牙框架。这并不能立即解决我的问题,因为我们确实希望至少与“上一代”iPad 设备保持兼容,但这对于可能正在寻找此类答案的其他人来说是值得指出的。

4

2 回答 2

1

您的选择之一是使用 Bonjour 使用 WiFi(AdHoc 或基础设施)。例如,您将能够检测附近的设备(如果它正在维护自己的 AdHoc,则通过 SSID;如果它在基础设施网络中,则通过服务被宣布)。一个很大的缺点是您无法直接(从应用程序)连接到设备的网络 - 用户必须手动完成。

至于 BT:最大的缺点是缺少串行协议(在 iPhone/iPod/iPad 中未实现)。

于 2012-02-09T18:55:30.427 回答
1

如果不先配对,您将无法将 iOS 设备连接到蓝牙设备。它是 Apple 特意以这种方式构建的,以减少有人在用户不知情的情况下连接蓝牙设备的可能性。如果配对每个设备是不可接受的(听起来确实如此),并且您不想开发加密狗,那么我能看到的唯一剩余路径是让您的设备能够像网状网络一样在它们之间中继数据。这样,用户只需与单个设备配对,该配对设备将中继其他设备和 iPad 之间的通信。

于 2012-02-18T05:42:53.803 回答