警告:不允许使用广告密钥“服务数据”

Bao*_*Hoa 6 ios core-bluetooth bluetooth-lowenergy ios-bluetooth

我正在开发 BLE 外设应用程序。根据要求,广告包中必须包含Service Data字段。我在Android中做到了这一点,数据包应该是这样的:

在此输入图像描述

0x16 是此处列出的服务数据字段https://www.bluetooth.com/specifications/signed-numbers/generic-access-profile/

同样的事情,我在 iOS 中也是这样做的。我使用BluetoothCore框架来实现蓝牙外设。

以下是我应该用来设置服务数据字段值的属性:

advertisementData[CBAdvertisementDataServiceDataKey] = <somedata>
Run Code Online (Sandbox Code Playgroud)

但是我收到了警告:

警告:不允许使用广告密钥“服务数据”

有人可以告诉我为什么以及解决方案是什么吗?

Pau*_*w11 5

在 iOS 上宣传外围设备时,您无法指定服务数据。您只能指定服务 UUID 和服务名称。

文档中:

advertisementData

包含您想要公布的数据的可选字典。AdvertisingData 字典的可能键在 中详细介绍CBCentralManagerDelegate。也就是说,外设管理器对象仅支持其中两个键:CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey

CBAdvertisementDataServiceDataKey解决您的警告的方法是从广告数据字典中删除。

恐怕 iOS 上没有满足您要求的解决方案。