Mac应用和iOS应用之间的蓝牙/ WiFi

raf*_*afa 7 macos cocoa bluetooth ios

如何制作与iOS应用程序连接并发送消息的蓝牙Mac应用程序?

或者是通过本地WiFi网络与Mac应用程序连接的iOS应用程序?

vig*_*o24 5

注意:这个答案现在已经过时,因为iOS6和OSX 10.7引入了CoreBluetooth(蓝牙LE v4),任何iOS设备都可以与任何其他BLE兼容设备(Mac或PC或外部硬件)进行任何类型的通信.如果由于旧的hw或特定要求(例如所需带宽)而无法支持BLE,以下答案仍然有效

据我所知,这几乎是不可能的.GameKit框架很好地支持iOS设备之间的蓝牙连接,但不支持与其他操作系统(包括OSX)连接.我见过的Mac和iPHone之间的唯一连接是热点功能(当它工作时).例如,考虑Keynote Remote应用程序.此应用程序允许您使用iPhone作为遥控器控制Keynote演示文稿.当两个设备在WiFi上进行Keynote配对时,它允许此控制,但使用蓝牙不允许此连接,而使用蓝牙,您可以控制两个iOS设备之间的Keynote演示.您可以在Apple技术说明2152中找到此声明:

An important consequence of the first point is that Bluetooth peer-to-peer networking can only be used to communicate between iOS devices; you can't use it, for example, to communicate between an iOS device and a computer running Mac OS X.

至于WiFi问题(我忘了在第一个问题中回复它),基本上你需要解决一些问题:可发现性和数据传输.为了确定两个设备是否在同一网络中,您可以使用Bonjour协议.基本上其中一台机器将自己发布为特定服务的服务提供者(您可以创建自己的服务:例如"_mytype._myprotocol"),并且可能的客户端将搜索服务器.除了Bonjour之外,还需要处理其他内容,例如寻址和DNS,而不需要两个应用程序来了解他们所在的本地网络的详细信息.这在Apple文档中进行了解释:http://developer.apple.com/library/mac/#文档/ Cocoa/Conceptual/NetServices/Articles/about.html 请注意,Bonjour是AirPlay(Apple TV),AirPrint以及AirDrop等功能的基础,但它受到许多设备的支持,例如一些NAS.在Apple开发人员站点的SampleCodes部分,您将找到一个很好的示例,称为"BonjourWeb",它显示了服务发现的工作原理.您可以在iPhone模拟器或设备中轻松尝试,如果您有一些支持Bonjour的设备,您将在列表中看到它.第二个问题当然是两个设备之间的真实数据通信,由您来定义自定义客户端/服务器或使用基于Web服务器的标准方法.这取决于应用程序和数据流.第一种方法更好,因为它是高度定制的,你必须研究NetworkStreams概念并检查苹果库中的SimpleNetworkStreams代码(这是Mac和iPhone之间的简单通信应用程序;并不总是有效,但它是一个很好的开始点)

  • 第一个答案是一个自我解释的评论:如果不可能你不能.无论如何,我已经添加了一个结论,只是为了清楚.我还在上次错过的问题的第二部分添加了详细信息. (2认同)