首页 > 解决方案 > 警告:不允许使用广告密钥“服务数据”

问题描述

我正在开发一个 BLE 外围应用程序。根据要求,广告数据包必须包含服务数据字段。我在Android中做过这个,数据包应该是这样的:

在此处输入图像描述

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

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

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

advertisementData[CBAdvertisementDataServiceDataKey] = <somedata>

但是我收到了警告:

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

有人可以让我知道为什么以及解决方案是什么吗?

标签: iosbluetooth-lowenergycore-bluetoothios-bluetooth

解决方案


在 iOS 上广告外围设备时,您不能指定服务数据。您只能指定服务 UUID 和服务名称。

文档中:

advertisementData

包含您要宣传的数据的可选字典。广告数据字典的可能键在 中详细说明CBCentralManagerDelegate。也就是说,外围管理器对象只支持两个键:CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey.

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

恐怕您对 iOS 的要求没有解决方案。


推荐阅读