我正在尝试了解 AWDL 是什么。在 iOS 上,如果您使用 Apple 的蓝牙点对点网络,似乎 Apple 会创建一个新的网络接口“awdl0”来实现(我猜)IP-over-BT。
但是我找不到有关此技术或此接口的任何文档,它的行为方式,我们必须/不得做什么等。谷歌没有相关信息 :(。
特别地,我认为它意味着“建立了 BT 连接,并在其上运行 IP 桥接,您可以使用此来进行点对点通信”。苹果自己的系统库存在错误,其中这个桥梁不能够迅速设置好,如果您发送数据太快,操作系统似乎会将其丢弃。因此...如果我可以查询此 awdl0,则希望检查“您准备好了吗?”并延迟 P2P 消息直到操作系统满意。
更新
更多信息:我可以让 iOS 设备之间创建 awdl0 连接对 - 但它们永远不会被创建到 OS X 设备,无论 BT 和 Bonjour 是否打开,无论设备是否配对。
一些背景:
在 iOS5 中,Apple 永久性禁用了 Bonjour/点对点网络的蓝牙部分,并发布了技术说明,指导每个人使用 DNS-SD 如果他们希望在 iOS 设备之间继续使用蓝牙作为传输。这很好,但它意味着您必须使用 DNS-SD,如果您想要高性能的蓝牙,并且您希望它可靠。
(GameKit 有时可以正常工作,但在现实场景中,例如拥挤的公共场所,我们经常看到可怕的性能 - 如果您使用 DNS-SD,则此问题会消失)
DNS-SD 协议不包括用于告诉您硬件正在使用的信息。但是它确实告诉您网络接口(这就是我知道我们正在运行 awdl0 的方式)
DNS-SD 是令人敬畏的,我们在 iOS 设备之间具有高速、低延迟的点对点连接 - 所有 GameKit 所承诺的东西,在拥有多个 wifi/BT 设备的范围内往往无法实现。