CoreBluetooth中不允许使用广告密钥“Manufacturer Data”

时间:2013-04-03 06:24:21

标签: iphone ios objective-c core-bluetooth

我正在使用核心蓝牙框架。我正在尝试使用此框架创建外围设备。我的外围设备使用以下方式公布数据:

manager=[[CBPeripheralManager alloc]initWithDelegate:self queue:nil];
[manager startAdvertising:dictionary];

这里我传给广告的字典是:

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
                                    @"name", CBAdvertisementDataLocalNameKey,@"some other data",CBAdvertisementDataManufacturerDataKey,nil];

当我运行应用程序时,我收到警告: CoreBluetooth中不允许使用广告键“制造商数据”

我没有收到我在中心侧使用密钥CBAdvertisementDataManufacturerDataKey发送的“其他一些数据”。我得到了中心的名字。那么如何将一些其他数据与广告数据一起发送呢?

1 个答案:

答案 0 :(得分:11)

有关startAdvertising的CBPeripheralManager文档声明:

  

包含您要宣传的数据的可选字典。在CBCentralManagerDelegate协议参考中详细说明了advertisementData字典的可能键。 也就是说,外围管理器对象只支持两个密钥:CBAdvertisementDataLocalNameKey和CBAdvertisementDataServiceUUIDsKey

这些密钥仅适用于iOS设备处于中央模式且正在发现外部设备(即只读)的情况。在外围模式下运行时,我不知道为什么会出现这种限制,您可能会尝试在其上提交错误报告。