我正在开发BLE外围应用程序。根据要求,广告包必须包含“服务数据”字段。我已经在Android中完成此操作,数据包应如下所示:
0x16是此处https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/
列出的“服务数据”字段同一件事,我在iOS中完成。我使用BluetoothCore框架来实现蓝牙外围设备。
以下是我应该用来为“服务数据”字段设置值的属性:
advertisementData[CBAdvertisementDataServiceDataKey] = <somedata>
但是我收到警告:
警告:不允许使用广告代码“服务数据”
有人可以让我知道原因和解决方案吗?
答案 0 :(得分:1)
在iOS上为外围设备做广告时,您不能指定服务数据。您只能指定服务UUID和服务名称。
advertisementData
包含要发布的数据的可选词典。
CBCentralManagerDelegate
中详细说明了advertiseData词典的可能关键字。也就是说,外围设备管理器对象仅支持两个键:CBAdvertisementDataLocalNameKey
和CBAdvertisementDataServiceUUIDsKey
。
解决此警告的方法是从广告数据字典中删除CBAdvertisementDataServiceDataKey
。
恐怕iOS上无法解决您的要求。