从应用程序将设备连接到 iPad 的最简单方法是啥?

Posted

技术标签:

【中文标题】从应用程序将设备连接到 iPad 的最简单方法是啥?【英文标题】:What is the simplest way to connect a device to an iPad from an application?从应用程序将设备连接到 iPad 的最简单方法是什么? 【发布时间】:2012-02-03 15:05:03 【问题描述】:

我正在为我的公司开发一个主要产品版本。我们正在设计一种新设备,我们希望将其集成到 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 协议。

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

【问题讨论】:

我想知道您是否会收到任何回复,因为所有这些(通常)都在 NDA 条款下。对于“Made for iPad”标志:这让我想起了旧的 Intel 486 cpu,上面印着“与 Windows 兼容”:-) 是的,几乎所有为 iOS 设备开发硬件的操作都包含在 NDA 中。但是,在这种情况下,我说的是与 iOS 设备进行通信。我想可能会有一些选项可以讨论,因为为 iOS 设备编写的软件不受 MFi 协议的约束,因为它们与硬件的开发密切相关。 我稍微修改了这个问题,因此很明显我不是在寻找如何从硬件方面做到这一点的答案。我的问题是针对 iOS 软件连接选项的。我可以在我的 iOS 项目中做些什么来轻松连接到我可以控制的蓝牙硬件。 我认为蓝牙设备总是必须配对的;比如 PS3 控制器和免提耳机。 @Almo- 是的,这是正确的,但是要将 BT 设备与 iOS 设备配对,您必须转到“设置”->“常规”->“蓝牙”屏幕,搜索设备并点击它启动连接。假设完全控制连接软件和硬件,您可以自动化整个过程。我正在寻找最简单和最简单的方法来做到这一点,以便这个过程对我们的客户来说是最“无忧无虑”的,因为他们可能不得不经常这样做,尤其是在多个 iOS 设备上。此功能在配备蓝牙 LE 设备的 iPhone 4S 上可用。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

出于各种原因,我们需要这种蓝牙机制作为辅助通信方式。我们开发的硬件可以连接到本地网络,事实上,我们当前的产品版本可以。但是,由于物理、位置限制(WiFi 或硬连线),并非所有客户都能够将其设备联网。此外,此应用程序将为我们的支持技术人员提供超级用户模式。他们还将使用此应用程序或类似应用程序连接到我们的设备,解决任何问题。根据经验,我们的技术人员需要尽可能简单的方法来连接这些设备。 答,好的。当您询问替代方案时,我没有看到它必须是BT。 iOS 设备的问题在于它们(充其量)仅支持 HFP 1.5、PBAP、A2DP、AVRCP、PAN、HID 配置文件(support.apple.com/kb/HT3647)......这在不违反 NDA 的情况下我可以这么说 你可以让设备通过 BT 被发现,然后选择 BT 音频调制解调器(以及 iOS 端的代码内调制解调器),但这就像重新发明*** 另一个想到的选择是(因为您已经是 MFi 的成员)是为 iPad 开发一个加密狗。但你可能试图避免这个选项 是的,加密狗也不太可取。想象一下,我们的设备可能在上锁的壁橱里,甚至在天花板上,在隔音砖后面。它们都可以访问,但蓝牙对我们来说的部分好处是您不必触摸设备。

以上是关于从应用程序将设备连接到 iPad 的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

将 Lambda 连接到 AWS MSK 中的 kafka 主题的最经济有效的方法是啥?

使用 C# 从 RTMP 服务器获取和播放音频流的最简单方法是啥?

使用 Python 进行 SSH 的最简单方法是啥?

在 Visual C++ 中执行查询的最简单方法是啥

如何将 iPhone 连接到蓝牙设备?

将贝宝连接到我自己的购物卡丁车的最简单方法[关闭]