如何判断 bonjour 服务是 Wi-Fi 还是蓝牙?

Posted

技术标签:

【中文标题】如何判断 bonjour 服务是 Wi-Fi 还是蓝牙?【英文标题】:How do I tell if a bonjour service is wi fi or bluetooth? 【发布时间】:2011-02-20 04:07:47 【问题描述】:

我正在构建一个在两部 iPhone 之间发送信息的应用。该应用程序运行良好,但我遇到的一个问题是我无法判断 bonjour 是选择 wi-fi 还是蓝牙进行连接。我想让用户能够选择他们喜欢的。另外,有没有办法以编程方式判断设备的蓝牙是否开启?

【问题讨论】:

有类似的情况,但传输层不同。我的 NAS 可通过无线和有线 GB 以太网访问。 NAS 上的 samba 共享会在两个接口上公布。但 Bonjour 总是更喜欢速度较慢的无线链接。 【参考方案1】:

没有办法告诉。

这只是那些奇怪的事情之一。

事实上,没有办法以编程方式选择 WiFi 或蓝牙。这很烦人,但确实如此。

通常,多设备游戏会向用户发出警告:

“请务必关闭蓝牙,以 确保您使用的是 WiFi 连接。”

情况就是这样。

【讨论】:

【参考方案2】:

Bonjour 只是一个服务发现协议 - 它并不关心您拥有什么样的网络。它将通过混合网络(例如通过网桥和路由器)发现服务,因此尝试将通过 Bonjour 发现的服务映射到单一类型的传输层实际上是没有意义的。

【讨论】:

以上是关于如何判断 bonjour 服务是 Wi-Fi 还是蓝牙?的主要内容,如果未能解决你的问题,请参考以下文章

iOS中解析Bonjour服务(转)

我可以在 info-plist 上为 Bonjour 服务使用通配符吗

在其他平台上使用 iOS GameKit 的“Bluetooth Bonjour”

Visual Studio Xamarin提示Bonjour backend初始化失败

iChat 如何开始对话?

Android 可以通过蓝牙支持 Zeroconf/Bonjour 吗? TCP/IP 怎么样?