【问题标题】:Building an iBeacon using CBPeripheralManager使用 CBPeripheralManager 构建 iBeacon
【发布时间】:2014-04-27 17:48:17
【问题描述】:

我正在尝试使用 CBPeripheralManager 创建一个 iBeacon(以便它可以在后台运行)。

试图发现 Estimotes 信标和充当 iBeacon (CBBeacon) 的 iPad 的 CBServiceCBCharacteristics,但到目前为止运气不佳。

我想知道是否有人已经这样做或遇到过这种情况? 如果有人已经发现了 CBPeripheral - CBService - CBCharacteristic 结构,我将非常感激。

提前非常感谢!

【问题讨论】:

  • @Davorin 感谢您的编辑。
  • @MidhunMP 我会看看那个。谢谢。
  • @MidhunMP 该教程使用 CBBeaconRegion,我正在尝试通过定义正确的 CBService 和 CBCharacteristics 来构建 iBeacon。谢谢!
  • 目前认为无法从后台投放广告(除非您修改了设备的操作系统/安全模型)。 “iBeacon”方案由一个简单的广告包组成,并没有正式涉及任何服务或特性,因此您可能没有发现任何内容。

标签: ios iphone bluetooth reverse-engineering ibeacon


【解决方案1】:

iBeacon 配置文件与 CoreBluetooth 支持的 GATT 配置文件不同,因此您无法使用 CoreBluetooth 构建 iBeacon 广告。

有关 iBeacon 配置文件的信息,请参阅此答案 - What is the iBeacon Bluetooth Profile

【讨论】:

    【解决方案2】:

    我实际上已经尝试过(使用基于this article 的自定义 iBeacon 广告数据),但遗憾的是它没有奏效。我得出的结论是,即使不使用CLBeaconRegion 对象,iOS 似乎也能以某种方式知道 iBeacon 广告的外观,并且即使作为使用 Core Bluetooth 的外围设备,它也不允许它在后台运行。

    编辑:

    要添加更多关于您尝试在 Estimote 上发现服务和特征的信息,请查看 this answer。长话短说,如果你使用像 LightBlue 这样的应用程序来发现 Estimote 上的服务,ServiceUUID 和 ProximityUUID 是完全不同的。 Estimote 似乎将 GATT 用于连接模式,将 iBeacons 用于广告模式。您可以阅读更多关于 Estimote 不同模式的信息here

    【讨论】:

    • @Williams_Martinez 看看我的编辑,为您提供有关您尝试使用 Estimote 服务的更多信息。希望有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多