代码之家  ›  专栏  ›  技术社区  ›  Tai Squared

iPhone如何通过无线或蓝牙访问其他非iPhone设备?

  •  28
  • Tai Squared  · 技术社区  · 16 年前

    我试图弄清楚一个iPhone是否可以通过无线或蓝牙连接到另一个非iPhone设备,并且看到了相互冲突的信息。我所发现的大部分都是在3.0版的sdk出现之前,当时它确实不可能出现。查看堆栈溢出问题,例如 Can the iPhone 3.0 SDK provide full access to Bluetooth devices (headsets)? 提到你不能连接到任意设备,除非它是“适用于iPhone”设备的一部分。我需要这个程序中的硬件吗?

    查看苹果文档, Peer-to-Peer Connectivity 它提到连接两个iPhone,而不是一个iPhone到另一个蓝牙设备。那么有这样的文章 iPhone SDK focus: Bluetooth enhancements 包括这句话

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

    另一个堆栈溢出问题, GameKit in iPhone SDK 3.0 提到 Bonjour the Apple documentation for Bonjour 谈论连接到Bonjour设备,但iPhone能连接到任何Bonjour设备吗?它必须有Wi-Fi连接,还是可以使用蓝牙?

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

    3 回复  |  直到 13 年前
        1
  •  12
  •   Peter Mortensen Pieter Jan Bonestroo    13 年前

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

    如果你想通话的设备是Bonjour可通过 Wi-Fi 他们不需要成为 为iPod制造 程序。不过,这听起来不像你的情况。

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

        2
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    13 年前

    你可以使用 NSStream 为了打开 IPv4 / IPv6 iPhone上的插座。您所连接的设备不必是iPhone,也不必使用Wi-Fi。由于网络通信协议的布局,你不必关心你的iPhone与哪种设备通信。

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

        3
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    13 年前

    作为iPhoneOS3.0SDK的一部分,苹果公司宣布可以通过蓝牙或Dock接口控制硬件附件。Dock连接器支持标准协议(即播放、暂停等)以及开发人员想要实现的任何自定义协议。

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

    至于哪些设备支持蓝牙通信,除了第一代iPod touch以外的所有设备都应该正常。

    也见 Apple's page on iPhone OS accessories .