【问题标题】:Custom BLE Advertisement on iOSiOS 上的自定义 BLE 广告
【发布时间】:2017-02-07 21:12:14
【问题描述】:

我希望在 iOS 上创建一个 BLE 广告,在那里我可以在字节级别控制广告。

一个用例是模仿 iBeacon 广告。 What is the iBeacon Bluetooth Profile(我想在我的应用程序处于后台时做广告,这就是我不使用 CoreLocation 的原因)

我看不到使用 Core Bluetooth API 执行此操作的方法。它是否正确?是否有使用私有 API 或越狱的替代方案?

【问题讨论】:

    标签: ios bluetooth bluetooth-lowenergy core-bluetooth


    【解决方案1】:

    正如其他人已经指出的那样,iOS 上没有允许您执行此操作的 API。

    您可以作为 iBeacon 进行广告宣传,但前提是您的应用位于前台。在后台时,广告被删除,因此无法再被发现(除了显式扫描该服务 UUID 的其他 iOS 设备)。另请参阅此处的文档:Core Bluetooth Background Processing

    如果您愿意分享您的用例和您想要实现的目标,也许还有其他方法可以实现。

    【讨论】:

    • 我想在设备未连接时捕捉广告数据。您能否告诉我在 BLE 设备端发生某些事情时调用了哪个委托方法。
    【解决方案2】:

    我对 iOS 的经验是,如果 API 中没有公开的东西,除了越狱之外,没有其他办法。对于低功耗蓝牙,API 处于 GAP/GATT 级别,而在较低级别(如果有的话)暴露的很少。广告是 LL(链接层)功能。

    为了说明访问的限制程度:扫描 BLE 设备时,您将无法访问广告商的 MAC 地址 iOS。在 Android 中,您拥有它。

    【讨论】:

      【解决方案3】:

      我看不到使用 Core Bluetooth API 执行此操作的方法。这是 对吗?

      由于您必须设置制造商特定数据才能实现此目的,如果没有任何改变,您将遇到与我完全相同的问题。在这里解释:

      The advertisement key 'Manufacturer Data' is not allowed in CoreBluetooth

      这是不可能的。

      【讨论】:

      • 我已经编辑,准确的回答是“否”。如果我错了,请纠正我。
      猜你喜欢
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多