iPhone如何通过无线或蓝牙访问另一个非iPhone设备?

我试图找出一个iPhone是否可以通过无线或蓝牙连接到另一个非iPhone设备,并看到冲突的信息。 我所发现的大部分是在3.0版本的SDK出来之前,当然这是不可能的。 看看堆栈溢出的问题,如iPhone的3.0 SDK提供完全访问蓝牙设备(耳机)? 提及您不能连接到任意设备,除非它是“Works for iPhone”设备的一部分。 我需要硬件是这个程序的一部分吗?

通过苹果的文档, 对等连接 ,它提到连接两个iPhone,而不是iPhone到另一个蓝牙设备。 然后有像iPhone SDK焦点的文章:蓝牙增强 ,包括这个报价

…和新公布的“标准支持”应允许iPhone和电脑之间以及附近的iPhone之间的文件传输

另一个堆栈溢出问题, iPhone SDK 3.0中的GameKit提到了Bonjour , Bonjour 的苹果文档谈到了连接到Bonjour设备,但iPhone可以连接到任何Bonjour设备? 它是否必须有Wi-Fi连接,还是可以使用蓝牙?

即使我可以使用蓝牙连接到其他设备,但我相信它在第一代iPhone和iTouch上将不可用。 那是对的吗? 我正在考虑一个iPhone应用程序,该应用程序可能需要与该地区的其他非iPhone设备通信,可能使用蓝牙,但可能是直接无线连接。 这种方法的可能性和局限性是什么? iPhone无法连接到任意的蓝牙设备吗? 其他设备是否必须在无线Bonjournetworking上? 我试图找出是否有可能这个工作,或者如果这是不值得的努力。

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

如果您要与之通话的设备是通过Wi-Fi发现的Bonjour,则不需要成为Made for iPod程序的一部分。 但是,这听起来不像你的情况。

第三方开发商在不久的将来可能会生产通过30针脚端口连接的encryption狗,并访问现有的蓝牙设备。 如果这些开发者打开了他们的通信协议,那可能会使你的目标与这些设备进行通信。

您可以使用NSStream在iPhone上打开IPv4 / IPv6套接字。 您连接的设备不一定是iPhone,也不一定要使用Wi-Fi。 由于networking通信协议是如何布置的,你根本不需要关心你的iPhone与哪种设备通信。

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

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

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

至于什么设备支持蓝牙通信,除了第一代iPod Touch应该没关系。

另请参阅iPhone OS附件上的Apple页面 。