gpt4 book ai didi

ios - Bonjour 不通过 BT 做广告

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:18 27 4
gpt4 key购买 nike

在过去一周左右的时间里,我一直在努力反对这个问题。我已经阅读了以下资源:

  • StackOverflow:在没有 Gamekit 的情况下通过蓝牙享受 Bonjour? (3844189)
  • StackOverflow:Bonjour 如何通过蓝牙工作 (3350094)
  • StackOverflow:在其他平台上使用 iOS GameKit 的“蓝牙 Bonjour”(8070998)
  • 技术问答 QA1753 -- 苹果开发者
  • WiTap 示例应用程序
  • SRVResolver 示例应用
  • DNSSSDObjects 示例应用程序

我使用的是 Mac OS 10.7、Xcode 4.5、装有 iOS 6 的 iPhone 4 和装有 iOS 5.1.1 的 iPad 1。

我的问题是:我正在修改一个应用程序,该应用程序当前使用 GameKit 的点选器在 iPad 和 iP{hone|od touch} 之间进行连接。我们想修改它以通过蓝牙使用 Bonjour,因为我们在连接丢失时使用 Gamekit 重新连接设备时遇到了问题。我已经使用 dns_sd.h API 取得了一些成功,并获得了通过 wifi 进行广告和解析的服务,但即使我通过了 kDNSServiceFlagsIncludeP2P,我也没有通过蓝牙取得任何成功。

我认为蓝牙 Bonjour 可能已经需要在设备之间建立 PAN,但即使将 iPad 与 iMac 配对并浏览 DNS-SD 服务也没有给我任何帮助......而且 iPhone 无论如何也不会与 iPad 配对。

最佳答案

我刚刚在过去 24 小时内在自己的应用中解决了这个问题。我使用了 OS X 示例应用程序 DNSSDObjects 中的核心类。我只需更改三行代码即可添加对蓝牙的支持。这在我的 iOS 应用程序中非常有效。

在 DNSSDBrowser.m 中,对 DNSServiceBrowse 的调用需要为第二个参数传入 kDNSServiceFlagsIncludeP2P

在 DNSSDRegister.m 中,对 DNSServiceRegister 的调用需要进行相同的更改。

在 DNSSDService.m 中,对 DNSServiceResolve 的调用也需要进行相同的更改。

如果您只想使用蓝牙而不是 WiFi,那么应该更新相同的三行代码,因此第三个参数是 kDNSServiceInterfaceIndexP2P 而不是 kDNSServiceInterfaceIndexAny .

关于ios - Bonjour 不通过 BT 做广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com