28

我试图弄清楚 iPhone 是否可以通过无线或蓝牙连接到另一台非 iPhone 设备并且看到了相互冲突的信息。我发现的大部分内容是在 SDK 3.0 版问世之前,当时肯定是不可能的。查看 Stack Overflow 问题,例如iPhone 3.0 SDK 能否提供对蓝牙设备(耳机)的完全访问?提到您无法连接到任意设备,除非它是“Works for iPhone”设备的一部分。我需要属于该程序一部分的硬件吗?

查看 Apple 文档Peer-to-Peer Connectivity,它提到连接两部 iPhone,而不是 iPhone 到另一台蓝牙设备。然后是iPhone SDK focus 之类的文章:包含此引用的蓝牙增强

...并且新宣布的“标准支持”应该允许在 iPhone 和计算机之间以及附近的 iPhone 之间传输文件

另一个 Stack Overflow 问题iPhone SDK 3.0 中的 GameKit提到了Bonjour,并且Bonjour的 Apple 文档谈到了连接到 Bonjour 设备,但是 iPhone 可以连接到任何 Bonjour 设备吗?它必须有 Wi-Fi 连接,还是可以使用蓝牙?

即使我可以使用蓝牙连接到另一台设备,我相信它也不会在第一代 iPhone 和 iTouches 上可用。那是对的吗?我正在考虑一个 iPhone 应用程序,它需要与该地区的其他非 iPhone 设备进行通信,可能使用蓝牙,但可能是直接无线连接。这种方法的可能性和局限性是什么?不能让 iPhone 连接到任意蓝牙设备吗?其他设备是否必须在无线 Bonjour 网络上?我试图弄清楚这是否可能起作用,或者是否不值得付出努力。

4

3 回答 3

12

通过 iPhone OS 3.0 中的外部附件框架与其他蓝牙设备进行通信的唯一方法是它们位于Made for iPod 附件程序中。即使它们通过标准蓝牙连接进行通信,配件也需要特殊的硬件来处理来自 iPhone / iPod touch的数据流。不幸的是,这意味着您与通用蓝牙设备通信的想法在 iPhone OS 3.0 上不起作用。

如果您要与之交谈的设备是 Bonjour 可通过Wi-Fi发现的,则它们不需要是Made for iPod计划的一部分。但是,这听起来不像您的情况。

在不久的将来,第三方开发商可能会生产通过 30 针基座端口连接的加密狗,并可以访问现有的蓝牙设备。如果这些开发人员开放了他们的通信协议,那可能会实现您与这些设备通信的目标。

于 2009-06-30T22:16:17.997 回答
1

您可以使用NSStream在 iPhone 上打开IPv4 / IPv6套接字。您连接的设备不一定是 iPhone 或使用 Wi-Fi。由于网络通信协议的布局方式,您根本不必关心您的 iPhone 正在与哪种设备进行通信。

另一方面,Bonjour 在内部使用 NSStream。它基本上是一个漂亮的小包装器,允许自动发现。您需要在要参与自动发现过程的所有设备上安装 Bonjour 协议。甚至还有一个适用于 Windows 的实现。

于 2009-06-30T19:39:51.183 回答
0

作为 iPhone OS 3.0 SDK 的一部分,Apple 宣布能够通过蓝牙或底座连接器控制硬件配件。Dock 连接器支持标准协议(即播放、暂停等)以及开发人员想要实现的任何自定义协议。

至于通过蓝牙连接,您可以与其他 iPhone 或其他设备通话。例如,您可以使用立体声蓝牙连接兼容的蓝牙立体声耳机、车载套件或其他配件。

至于哪些设备支持蓝牙通信,除了第一代 iPod Touch 应该没问题。

另请参阅Apple 关于 iPhone OS 配件的页面

于 2009-06-30T19:42:35.360 回答