发现另一个 ios 设备而不连接到公共网络

Posted

技术标签:

【中文标题】发现另一个 ios 设备而不连接到公共网络【英文标题】:discover another ios device without connecting to common network 【发布时间】:2016-05-23 19:43:33 【问题描述】:

我正在研究 Multipeer Connectivity Framework,试图找到一种连接附近设备的方法。更准确地说,我有两部 iPhone 可供使用。这个想法是在它们之间建立连接,以便能够传输小的音频流。一对一连接就够了,无需创建群组。

如果我执行以下任何操作,一切正常,设备可以相互发现:

在两台设备上打开蓝牙 将它们连接到同一个 wi-fi 网络 在它们之间手动建立点对点 wi-fi 连接

但是是否有可能仅通过同时打开 wi-fi 来以某种方式发现附近的设备?理想情况下,他们会“看到”彼此并建立直接联系。

如果有人问过这样的问题,我很抱歉,但是很难用一句话来表达我试图达到的目标,因此很难找到任何相关信息。

【问题讨论】:

您可以让他们在服务器上注册他们的位置,并使用该信息来识别彼此靠近的设备,但这将取决于可用的位置精度可能较低,例如室内 【参考方案1】:

事实证明,仅使用 Bounjour API(NSNetService 级别)就非常容易:

let browser = NSNetServiceBrowser()
browser.includesPeerToPeer = true

最终从 Apple 获取了 this excellent example,迅速重写了其中的部分内容并根据我的需要进行了调整。

注意:我也尝试让它与 MultipeerConnectivity 框架一起工作,但它只是没有工作。尽管设备会成功发现彼此,但它们仍然无法建立连接。 而基于NSNetService 的解决方案工作得很好。

【讨论】:

【参考方案2】:

如果您只需要将一些音频或视频文件发送到另一台苹果设备,我认为您可以使用 airDrop 到此。

【讨论】:

以上是关于发现另一个 ios 设备而不连接到公共网络的主要内容,如果未能解决你的问题,请参考以下文章

来自 2 个 BLE 设备的 ios 通知

强 vs 弱 - 如何定义可能连接或不连接到 IBOutlet 的属性?

自动将蓝牙连接到最后连接的设备

确定公共 WiFi 是不是具有网络连接

仅从 ZeroTier 网络内通过 SSH 连接到服务器

windows不连vpn不能用wifi