如何传递额外的广告 BLE 数据?

Posted

技术标签:

【中文标题】如何传递额外的广告 BLE 数据?【英文标题】:How to pass additional advertising BLE data? 【发布时间】:2015-08-21 07:14:47 【问题描述】:

目前我在 OSX 上使用以下代码来定义广告数据:

[peripheral startAdvertising:@
                               CBAdvertisementDataLocalNameKey: @"hello",
                               // CBAdvertisementDataManufacturerDataKey: manufacturerDataKey,
                               CBAdvertisementDataServiceUUIDsKey: @[[CBUUID UUIDWithString:@"00001234-0000-1000-8000-00805f9b34fb"]]
                               ];

但我应该在这里添加更多Generic Access Profile (GAP) 数据。我应该在这里添加:

0x02 «16 位服务类 UUID 的不完整列表» 0x08 «缩短的本地名称» 0x16 «服务数据» 0x19 «外观»

如何添加这些数据?

【问题讨论】:

【参考方案1】:

CBAdvertisementDataLocalNameKey 和 支持 CBAdvertisementDataServiceUUIDsKey

来自CBPeripheralManager Class Reference

广告数据

包含您要宣传的数据的可选字典。这 广告数据字典的可能键在 CBCentralManagerDelegate 协议参考。也就是说,只有两个 外围管理器对象支持键: CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey

【讨论】:

谢谢。我无法理解这样的限制 - 设备可以传递更多字段,但使用 Objective-C 时我不能。有没有办法以某种方式覆盖 CBPeripheralManager 所做的并添加这些数据? 您可以向 Apple 提出问题。

以上是关于如何传递额外的广告 BLE 数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 BLE 广告数据 Swift 2

BLE 设备在不扫描时是不是会读取广告数据包? (自动连接)

Android 中的 BLE 广告

iPhone 在其 BLE 制造商数据中的广告是啥?

BLE广告包获取频率变得非常低

如何从 C++ 代码扫描和连接广告 BLE 设备?