我试图找出什么是AWDL。在 iOS 上,如果您通过蓝牙使用 Apple 的点对点网络,苹果似乎创建了一个新的网络接口“awdl0”来实现(我猜)IP-over-BT。
但是我找不到任何关于这项技术的文档,或者这个界面,它的行为方式,我们必须/不能用它做的事情等等。谷歌出现空白:(。
特别是,我相信这意味着“建立了一个BT连接,并且我在顶部运行了一个IP桥,你可以使用它来进行点对点通信”。Apple 自己的系统库存在错误,即此桥的设置速度不够快,如果您发送数据过早,它似乎会被操作系统丢弃。所以......如果我可以查询这个awdl0,我希望检查“你准备好了吗?” 并延迟 P2P 消息,直到操作系统满意为止。
更新
更多信息:我可以让成对的 iOS 设备相互创建 awdl0 连接——但它们永远不会被创建到 OS X 机器上,无论 BT 和 Bonjour 是否打开,无论设备是否配对。
一些背景:
在 iOS5 中,Apple 永久禁用了 Bonjour/Peer-to-peer 网络的蓝牙部分,并发布了一份技术说明,指导所有人使用 DNS-SD,如果他们想继续使用蓝牙作为 iOS 设备之间的传输方式。这很好,但这意味着如果你想要高性能的 BT 并且想要它可靠,就必须使用 DNS-SD。
(GameKit有时可以正常工作,但我们经常在现实场景中看到糟糕的性能,例如拥挤的公共场所 - 如果您使用 DNS-SD,这种情况就会消失)
DNS-SD 协议不包含告诉您硬件正在使用什么的信息。但它确实告诉你网络接口(这就是我知道我们在 awdl0 上运行的方式)
DNS-SD 很棒,我们在 iOS 设备之间建立了高速、低延迟的点对点连接——所有这些都是 GameKit 所承诺的,但当范围内有多个 wifi/BT 设备时,往往无法提供。